JJJ*_*JJJ 2 python indexing numpy python-2.x
说:
arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr2d[:, :1] 给我
array([[1],
       [4],
       [7]])
arr2d[:,0] 给我 
array([1, 4, 7])
我以为他们会产生完全相同的东西.
1)当你说arr2d[:, 0],你说的是给我arr2d中所有行的第0个索引(这是另一种说法给我第0列的方式).
2)当你说arr2d[:, :1],你说给我所有:1arr2d中所有行的索引.Numpy解释:1与解释相同0:1.因此,你说"对于每一行,给我每行的第0个到第一个索引(不包括").事实证明这只是第0个索引,但你明确要求第二个维度的长度为1(因为0:1只有"长度"一个).
所以:
1)
print arr2d[:, 0].shape
输出:
(3L,)
2)
print arr2d[:, 0:1].shape
输出:
(3L, 1L)
我还是不明白,他们为什么不回归同样的事情呢?
考虑:
print arr2d[:, 0:3]
print arr2d[:, 0:3].shape
print arr2d[:, 0:2]
print arr2d[:, 0:2].shape
print arr2d[:, 0:1]
print arr2d[:, 0:1].shape
这输出:
[[1 2 3]
 [4 5 6]
 [7 8 9]]
(3L, 3L)
[[1 2]
 [4 5]
 [7 8]]
(3L, 2L)
[[1]
 [4]
 [7]]
(3L, 1L)
对于最后一个形状来说,这将是一个意想不到的和不一致的(3L,).
| 归档时间: | 
 | 
| 查看次数: | 7025 次 | 
| 最近记录: |