Eng*_*wza 7 python arrays numpy numpy-slicing numpy-ndarray
在NumPy工作,我了解如何使用本文从3D数组中切割2D数组.
根据我想切入的轴:
array = [[[0 1 2]
[3 4 5]
[6 7 8]]
[[9 10 11]
[12 13 14]
[15 16 17]]
[[18 19 20]
[21 22 23]
[24 25 26]]]
Run Code Online (Sandbox Code Playgroud)
切片会给我:
i_slice = array[0]
[[0 1 2]
[3 4 5]
[6 7 8]]
j_slice = array[:, 0]
[[0 1 2]
[9 10 11]
[18 19 20]]
k_slice = array[:, :, 0]
[[0 3 6]
[9 12 15]
[18 21 24]]
Run Code Online (Sandbox Code Playgroud)
但是有可能以45度角切割?如:
j_slice_down = array[slice going down starting from index 0]
[[0 1 2]
[12 13 14]
[24 25 26]]
Run Code Online (Sandbox Code Playgroud)
我能够在所有3轴上升或下降,甚至包裹所有方式...在黑暗的列表日期与许多for循环......但我相信在NumPy必须有更好的方法.
In [145]: arr[np.arange(3), np.arange(3),:]
Out[145]:
array([[ 0, 1, 2],
[12, 13, 14],
[24, 25, 26]])
Run Code Online (Sandbox Code Playgroud)