Python x和y必须具有相同的第一维度,但具有形状(2700)和(200)
我有一个NumPy数组(2,4),我想把它向左旋转90度,我使用Python x和y必须具有相同的第一维度,但具有形状(2700)和(200),python,arrays,numpy,matrix,Python,Arrays,Numpy,Matrix,我有一个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) 但是当我运行这个代码时,我得到了这个失败 x and y must have the same f
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)
但是当我运行这个代码时,我得到了这个失败
x and y must have the same first dimension, but have shapes (4,) and (2,)
不是强迫性的美丽,而是工作:
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]]
哪一行代码给出了错误消息?如果在赋值之前删除
y=
,然后只执行np.rot90(x)
那么错误消息是什么?我尝试了你的代码,它返回y
作为例外旋转。这不是我真正的数组。我的数组包含3.276800000e+04之类的数字。可能是因为这个原因我才失败。请提供一个。您当前的示例似乎没有重现错误。
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]]