【发布时间】:2017-07-06 00:12:41
【问题描述】:
在Python中,如果我重塑一个数组,我一般没有问题:
arr1 = np.array([1,2,3,4])
print np.reshape(arr1, (2, 2, 1))
但是当我尝试重塑 10240 x 62 numpy ndarray 时遇到问题:
a1 = np.reshape(X_train_s, (X_train_s[0], X_train_s[1], 1))
错误是:
...in reshape
return reshape(newshape, order=order)
TypeError: only length-1 arrays can be converted to Python scalars
ndarray X_train_s 包含 float32 数字。为什么我不能重塑数组?
【问题讨论】:
-
X_train_s[0]不是 10240,X_train_s[1]不是 62。这些是数组的第一行和第二行。如果你想要 10240 和 62,你应该索引X_train_s.shape。 -
X_train[0]返回一个数组。 10240x62 阵列的“行”。 shape 参数只接受标量,并且如错误消息所示,长度大于 1 的数组不能隐式转换为标量。 -
这只是一个猜测,但您的第二个代码块中似乎缺少两个
.shape。 -
天哪....谢谢@user2357112
-
@user2357112 如果你把它写成答案,我会接受的。