【发布时间】:2019-10-27 12:14:42
【问题描述】:
我想以仅打印第二个数组中每一行的最后一个元素的方式对 3D 数组进行切片。
在我的 3D 阵列中:
np.random.seed(42)
M = np.random.randint(10, size=(2,2,10))
print(M)
我尝试以如下方式访问第二个数组的最后一个元素:
print(M[1::2]) ## which just prints me the whole 2nd Array
print(M[1::,2]) ## which gives me an error of index 2 being out of bounds
我理解第一个 print() 方法,例如:
1: # 选择第二个数组
: # 选择第二个数组的所有行
:2 # 选择行的第二个索引并打印它
奇怪的是,它会打印出让我感到困惑的整个数组。 第二个 print() 方法我希望至少单独打印第二个索引,但我收到了错误消息。
所以我尝试了更多并想出了该代码:
print(M[1:,0:,::2])
它给了我想要的结果,但我无法阅读代码。
我明白了
1: ## 选择第二个数组
但是 ,0:,::2 让我很困惑。 ::2 正在选择我猜的每个第二个索引,但我仍然不明白我什么时候可以制作 ':' 什么时候不能。或者切片过程中','是什么意思。
【问题讨论】: