为什么切片一行或一列会产生“无量纲数组”?例如:
import numpy as np
arr = np.zeros((10,10))
print arr.shape
# (10, 10)
但是当我只想要一列或一行时,我得到了
print arr[:,0].shape
# (10,)
print arr[0,:].shape
# (10,)
而不是
print arr[:,0].shape
# (10, 1)
print arr[0,:].shape
# (1, 10)
答案 0 :(得分:1)
例如,您从0列和0行获得np.arrays
,其中numpy.array
为1维。你可以用这样的切片做一个小技巧:
In [103]: arr[:1,:].shape
Out[103]: (1, 10)
In [104]: arr[:,:1].shape
Out[104]: (10, 1)
修改强>
来自docs:
整数
i
返回与i:i+1
相同的值,但返回对象的维度减少1.特别是,带p的选择元组-th元素一个整数(以及所有其他条目:
)返回维度为N-1的相应子数组。如果N = 1,则返回的对象是数组标量。 Scalars中解释了这些对象。