【发布时间】:2017-01-14 10:31:16
【问题描述】:
我需要沿 Z 轴翻转 3D 数组 A 形 [m, n, k]。 我需要平面 0 (A[0,:,:]) 变成 k-1,平面 1 变成 k-2 平面等等。
我需要在很多数组上这样做,而且循环非常慢。
我试过了:
C = numpy.rot90(A,2)
C = flipud(A)
C = A[::-1]
我也尝试了 rol 和 reshape,但不是我需要的。
例如: A 是 (3, 2, 2)
A= np.array([[[ 1.01551435, -0.76494131],
[ 0.56853752 , 1.94491724]],
[[-0.97433012 , 2.08134198],
[-1.34997602 ,-0.33543117]],
[[ 0.54217072, -1.33470658],
[-0.50179028, -0.66593918]]])
我需要将 Z 轴倒置重新排序:
[[ 0.54217072 -1.33470658]
[-0.50179028 -0.66593918]]
[[-0.7703279 0.02402204]
[-0.18006451 -0.37589744]]
[[ 1.01551435 -0.76494131]
[ 0.56853752 1.94491724]]
有什么想法吗?
【问题讨论】:
-
举个小例子,比如说一个 2x3x4 数组,以及你想要的。还要指出您尝试的方法有什么问题。我猜
A[:, :, ::-1]会成功的。 -
@hpaulj 的建议是一个很好的尝试... a = np.arange(2*3*4).reshape(2,3,4) 然后使用他的重新排列来明确如果这是你想要的。
-
在问题中添加示例
-
@hpaulj 的建议解决了这个问题。谢谢
标签: arrays python-2.7 numpy multidimensional-array