我有一个5D数组'a',大小为(3,2,2,2,2)。在
import numpy as np
a = np.arange(48).reshape(3,2,2,2,2)
a[0,0,0]:
array([[0, 1],
[2, 3]])
我要做的是将这个5D数组旋转180度,但只在最后两个维度上,而不改变它们的位置。所以输出[0,0,0]应该如下所示:
^{pr2}$我所做的:
out = np.rot90(a, 2)
out[0,0,0]:
array([[40, 41],
[42, 43]])
rot90
函数显然会旋转整个数组。在
注意:如果可能,我希望避免使用for循环
如果我正确地理解了这个问题,你可以把元素沿着最后两个轴的排列颠倒过来,就像这样-
您也可以将最后两个轴合并为最后一个轴的二维数组,然后沿其反转元素并重新调整形状,如-
^{pr2}$样本运行-
要将最后两个轴旋转180度,请将
axes=(-2, -1)
传递给np.rot90
:如果您的NumPy版本没有带有
axes
参数和np.rot90
参数,那么还有其他选择。在一种方法是使用索引:
^{pr2}$rot90
翻转数组的第一个两个轴,因此要使用它,您需要转置(以反转轴)、旋转并再次转置。例如:相关问题 更多 >
编程相关推荐