在python的右下角旋转值数组

时间:2019-01-16 16:53:32

标签: python numpy

我需要将值数组绕右下角旋转90度,例如,Ox上的所有值都将变为oY。 enter image description here 我知道这可能很容易,但是到目前为止,np.rot90()和其他转换都无法实现

2 个答案:

答案 0 :(得分:1)

好吧,是否绕着右下角,左上角或其他任何点旋转数组都没关系:所有这些都是正旋转。唯一重要的方面是阵列要沿顺时针或逆时针方向旋转的方向,实际上,您可以使用另一个方向:顺时针旋转90度与旋转270度相同在相反的方向。

如果您想将阵列顺时针旋转 ,请使用np.rot90,但要告诉numpy将阵列旋转3次,并且要旋转数组逆时针旋转90度使用np.rot90传递1或不传递任何内容(当然,除了数组之外):

np.rot90(array)    # 90 deg CCW
np.rot90(array, 1) # 90 deg CCW
np.rot90(array, 3) # 90 deg CW

示例

import numpy as np

array = np.arange(15).reshape((3, 5))

print(array)

print(np.rot90(array, 1))
print(np.rot90(array, 3))

原始数组

array([
    [ 0,  1,  2,  3,  4],
    [ 5,  6,  7,  8,  9],
    [10, 11, 12, 13, 14]
])

旋转1次(逆时针旋转90度)

array([
    [ 4,  9, 14],
    [ 3,  8, 13],
    [ 2,  7, 12],
    [ 1,  6, 11],
    [ 0,  5, 10]
])

旋转3次(顺时针旋转90度)

array([
    [10,  5,  0],
    [11,  6,  1],
    [12,  7,  2],
    [13,  8,  3],
    [14,  9,  4]
])

答案 1 :(得分:-1)

使用np.swapaxes():

>>> x = np.array([[1,2,3]])
>>> np.swapaxes(x,0,1)
array([[1],
       [2],
       [3]])