首页 > 解决方案 > x 和 y 必须具有相同的第一维,但具有 (2700,) 和 (200,) 形状

问题描述

我有一个 NumPy 数组 (2,4),我想将它向左旋转 90 度,然后我使用np.rot90

例如,如果我的数组是

x = [[5,6,7,8],
     [1,2,3,4]]

当我旋转时,它将是

y = [[8,4],
     [7,3],
     [6,2],
     [5,1]]
                                 

x是 (2,4) NumPy 数组,y将是 (4,2)

y = np.rot90(x)

但是当我运行这段代码时,我得到了这个失败

x and y must have the same first dimension, but have shapes (4,) and (2,)

标签: pythonarraysnumpymatrix

解决方案


在计算上不是那么漂亮但工作:

import numpy as np

x = [[5,6,7,8],

     [1,2,3,4]]

​

y = np.zeros((len(x[0]),len(x)), dtype = int)

​

for i,j,k in zip(x[0], x[1], range (0,len(x[0]))):

    y[len(x[0])-1-k] = [i,j]

    np.asmatrix(y)

print (y)

[[8 4],
 [7 3],
 [6 2],
 [5 1]]

推荐阅读