The ellipsis covers all remaining elements:
In [1]: import numpy as np In [2]: a = np.array( range(24)).reshape( 4, 2, 3) In [3]: b = a[0][...] In [4]: b Out[4]: array([[0, 1, 2], [3, 4, 5]]) In [5]: b[...] = 12 In [6]: b Out[6]: array([[12, 12, 12], [12, 12, 12]]) In [7]: a Out[7]: array([[[12, 12, 12], [12, 12, 12]], [[ 6, 7, 8], [ 9, 10, 11]], [[12, 13, 14], [15, 16, 17]], [[18, 19, 20], [21, 22, 23]]]) In [8]: a.__array_interface__['data'] Out[8]: (31198960, False) In [9]: b.__array_interface__['data'] Out[9]: (31198960, False)
Line 3 creates the symbol b as a reference to a. Lines 8 and 9 show that the virtual addresses are identical.
The ellispsis can also be used in an assignment:
In [1]: import numpy as np In [2]: a = np.array( range(24)).reshape( 4, 2, 3) In [3]: a Out[3]: array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8], [ 9, 10, 11]], [[12, 13, 14], [15, 16, 17]], [[18, 19, 20], [21, 22, 23]]]) In [4]: c = np.ones(6).reshape(2,3) In [5]: c Out[5]: array([[ 1., 1., 1.], [ 1., 1., 1.]]) In [6]: a[0][...] = c In [7]: a Out[7]: array([[[ 1, 1, 1], [ 1, 1, 1]], [[ 6, 7, 8], [ 9, 10, 11]], [[12, 13, 14], [15, 16, 17]], [[18, 19, 20], [21, 22, 23]]]) In [8]: c[...] = 2 In [9]: c Out[9]: array([[ 2., 2., 2.], [ 2., 2., 2.]]) In [10]: a Out[10]: array([[[ 1, 1, 1], [ 1, 1, 1]], [[ 6, 7, 8], [ 9, 10, 11]], [[12, 13, 14], [15, 16, 17]], [[18, 19, 20], [21, 22, 23]]])
To create an array filled with a number:
In [8]: a = np.array( [12] * 10) In [9]: a Out[9]: array([12, 12, 12, 12, 12, 12, 12, 12, 12, 12])
This array can then be set to some other value:
In [10]: a[...] = 11 In [11]: a Out[11]: array([11, 11, 11, 11, 11, 11, 11, 11, 11, 11])
This works also with more-dimensional arrays:
In [18]: a = np.array( [12] * 10).reshape(2,5) In [19]: a Out[19]: array([[12, 12, 12, 12, 12], [12, 12, 12, 12, 12]]) In [20]: a[...] = 11 In [21]: a Out[21]: array([[11, 11, 11, 11, 11], [11, 11, 11, 11, 11]])
To set a part of the array:
In [21]: a Out[21]: array([[11, 11, 11, 11, 11], [11, 11, 11, 11, 11]]) In [22]: a[0][...] = 10 In [23]: a Out[23]: array([[10, 10, 10, 10, 10], [11, 11, 11, 11, 11]])