Numpy:差异b/w A [:i] [:j]和A [:i,:j]

Sin*_*ath 4 python numpy python-3.x

为什么以下操作有所不同?它们是如何在库中实现的?

print(prov_img[:19][:20].shape)
Output : (19, 1250)

print(prov_img[:19,:20].shape)
Output : (19, 20)
Run Code Online (Sandbox Code Playgroud)

Was*_*mad 6

prov_img 这里是一个二维数组.

此代码段为您提供前19行(第0行到第18行)和20列(第0列到第19列)prov_img:

>>> prov_img[:19,:20].shape
(19, 20)
Run Code Online (Sandbox Code Playgroud)

在这里,prov_img[:19]为您提供前19行prov_img然后添加[:20]意味着您再次从您获得的矩阵中获取前20行prov_img[:19]:

>>> prov_img[:19][:20].shape
(19, 1250)
Run Code Online (Sandbox Code Playgroud)

由于有19行prov_img[:19],从它切割前20行最终为您提供所有19行.列中没有切片,因此您将得到输出,(19, 1250)其中1250是prov_img矩阵中的列数(2d数组).