我有一个数组:
[[0, 1, 0, 0] [0, 1, 0, 0] [1, 0, 0, 0] ..., [0, 1, 0, 0] [0, 1, 0, 0]
[1, 0, 0, 0]]
形状是(38485,)
,我想要将它重塑为(38485,4)
,如下所示:[[0, 1, 0, 0]
[0, 1, 0, 0]
[1, 0, 0, 0]
.
.
.
[0, 1, 0, 0]
[0, 1, 0, 0]
[1, 0, 0, 0]]
但是当我尝试使用array.reshape(-1,4)
时,它会抛出错误ValueError: cannot reshape array of size 38485 into shape (4)
获取数组的代码:
dataset = pd.read_csv('train.csv')
y = dataset.iloc[:, 6]
fr=np.array([1,0,0,0])
re=np.array([0,1,0,0])
le=np.array([0,0,1,0])
ri=np.array([0,0,0,1])
for i in range(y.shape[0]):
if y[i]=="Front":
y[i]=fr
elif y[i]=="Rear":
y[i]=re
elif y[i]=="Left":
y[i]=le
elif y[i]=="Right":
y[i]=ri
array=y.values
有没有办法可以实现这个?
我通过以下方式修复了它:
array = np.array([[n for n in row] for row in array])
感谢wim
set(len(sub_array) for sub_array in array)
返回什么? - Eric Duminil