我有一个 3d 数组,我正在尝试从中获取刺伤列表。换句话说,给定数组:
t = np.array([[[1,2],[3,4]],[[5,6],[7,8]],[[9,10],[11,12]]])
array([[[ 1, 2],
[ 3, 4]],
[[ 5, 6],
[ 7, 8]],
[[ 9, 10],
[11, 12]]])
我正在尝试检索:
array([[ 1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11],
[ 4, 8, 12]])
np.ndarray.reshape
似乎按顺序重新组织元素,从而排除了刺伤。
numpy.lib.stride_tricks.as_strided
可能有效,但我尚未找到正确的值组合。
最佳答案
转置然后 reshape :
>>> t.transpose(1, 2, 0).reshape(4, 3)
array([[ 1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11],
[ 4, 8, 12]])
编辑:或者,您可以 reshape 然后转置:
>>> t.reshape(3, 4).T
array([[ 1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11],
[ 4, 8, 12]])
关于python - 刺穿 3D 阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33558780/