索引后查看形状:
In [295]: A=np.matrix([1,2,3])
In [296]: A.shape
Out[296]: (1, 3)
In [297]: A[0]
Out[297]: matrix([[1, 2, 3]])
In [298]: A[0].shape
Out[298]: (1, 3)
这种行为的关键是np.matrix总是2d.所以即使你选择一行(A [0,:]),结果仍然是2d,形状(1,3).因此,您可以根据需要串起尽可能多的[0],并且不会发生任何新的事情.
你想用A [0] [0]完成什么?与A [0,0]相同?
对于基本np.ndarray类,这些是等价的.
请注意,Python解释器将索引转换为__getitem__调用.
A.__getitem__(0).__getitem__(0)
A.__getitem__((0,0))
[0] [0]是2个索引操作,而不是一个.所以第二个[0]的效果取决于第一个产生的效果.
对于数组A [0,0]等价于A [0,:] [0].但对于矩阵,您需要:
In [299]: A[0,:][:,0]
Out[299]: matrix([[1]]) # still 2d
=============================
“An array of itself”, but I doubt anyone in their right mind would choose