We may find three dots (…) or ellipsis when get numpy ndarray elements. For example:
- shift_logits = logits[..., :-1, :]
- shift_labels = labels[..., 1:]
What this ellipsis means? In this tutorial, we will use an example to show you.
For example:
- import numpy as np
- x = np.arange(0,32).reshape(2, 4, 4)
- print("x =")
- print(x)
- print("x[:,:, 1] = ")
- print(x[:,:, 1])
- print("x[..., 1] = ")
- print(x[..., 1])
Run this code, we will see this result.
- x =
- [[[ 0 1 2 3]
- [ 4 5 6 7]
- [ 8 9 10 11]
- [12 13 14 15]]
- [[16 17 18 19]
- [20 21 22 23]
- [24 25 26 27]
- [28 29 30 31]]]
- x[:,:, 1] =
- [[ 1 5 9 13]
- [17 21 25 29]]
- x[..., 1] =
- [[ 1 5 9 13]
- [17 21 25 29]]
From the result above, we can find:
x[:,:, 1] == x[…, 1]
Actually, ellipsis mean :,:,…,: from the beginning and :,:,…,: from the ending.
For example:
if the shape of x is [3,4,5,6,]
x[:,:,2:3,:] = […,2:3,…]