无需单独进行旋转:numpy
有一个内置的numpy.rot90(m, k=1, axes=(0, 1))功能。默认情况下,矩阵在第一维和第二维上旋转。
如果您想更深一层旋转,您只需将发生旋转的轴设置更深一层(如果您想沿不同方向旋转,则可以选择交换它们)。或者按照文档指定:
axes: (2,) array_like
该阵列在由
轴。轴必须不同。
所以我们旋转y and z平面(如果我们标记尺寸x, y and z),因此我们要么指定(2,1)
or (1,2)
.
您所要做的就是设置axes
正确地,当你想旋转到右左:
np.rot90(a,axes=(2,1)) # right
np.rot90(a,axes=(1,2)) # left
这将旋转所有矩阵,例如:
>>> np.rot90(a,axes=(2,1))
array([[[7, 4, 1],
[8, 5, 2],
[9, 6, 3]],
[[7, 4, 1],
[8, 5, 2],
[9, 6, 3]],
[[7, 4, 1],
[8, 5, 2],
[9, 6, 3]],
[[7, 4, 1],
[8, 5, 2],
[9, 6, 3]]])
或者如果你想向左旋转:
>>> np.rot90(a,axes=(1,2))
array([[[3, 6, 9],
[2, 5, 8],
[1, 4, 7]],
[[3, 6, 9],
[2, 5, 8],
[1, 4, 7]],
[[3, 6, 9],
[2, 5, 8],
[1, 4, 7]],
[[3, 6, 9],
[2, 5, 8],
[1, 4, 7]]])
请注意,您只能指定axes
from numpy 1.12 和(可能)未来版本.