Numpy python形状太大,无法成为矩阵

Numpy python形状太大,无法成为矩阵,numpy,matrix,keras,conv-neural-network,Numpy,Matrix,Keras,Conv Neural Network,我正在使用python keras构建cnn模型 我遵循cnn mnist示例并修改代码。 这就是我发现的例子 #读取MNIST数据 (X_列,y_列),(X_测试,y_测试)=列表负载数据() #数据的翻译 X_Train40=X_Train.重塑(X_Train.形状[0,28,28,1])aType('float32') X_Test40=X_Test.reformate(X_Test.shape[0,28,28,1])astype('float32') 我的数据有30222行和6列cs

我正在使用python keras构建cnn模型

我遵循cnn mnist示例并修改代码。 这就是我发现的例子

#读取MNIST数据
(X_列,y_列),(X_测试,y_测试)=列表负载数据()
#数据的翻译
X_Train40=X_Train.重塑(X_Train.形状[0,28,28,1])aType('float32')
X_Test40=X_Test.reformate(X_Test.shape[0,28,28,1])astype('float32')
我的数据有30222行和6列csv

即10074个数据每个数据块的大小为3*6

例如,矩阵的1~3行是一个信息块

然后我改变了数据的格式

X_-Train40=X_-Train.重塑(10074,3,6,1)
X_Test40=X_Test.重塑(4319,3,6,1)
然后出现这个错误

---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
---->1辆X_列车40=X_列车重塑(10074,3,6,1)
2 X_测试40=X_测试。重塑(4319,3,6,1)
~\Anaconda3\lib\site packages\numpy\matrixlib\defmatrix.py在数组中完成(self,obj)
269返回
270 elif(ndim>2):
-->271 raise VALUE ERROR(“形状太大,无法成为矩阵”)
272其他:
273 newshape=self.shape
ValueError:形状太大,无法成为矩阵。

只是猜测,但由于数据来自csv文件,因此它被转换为
np.matrix
,该矩阵具有二维限制

在内部,numpy将尝试保留矩阵的维度,因此要重新塑造为更高的维度,需要将其转换为
ndarray
,如下所示:

X_Train = np.array(X_Train)
X_Test = np.array(X_Test)
X_Train40 = X_Train.reshape(10074, 3, 6, 1)
X_Test40 = X_Test.reshape(4319, 3, 6, 1)

你知道。。。我今天遇到了这个问题,我找不到一个有帮助的答案

此时您的问题可能已经解决了,但当python抱怨“形状太大而不能成为矩阵”时,需要注意的一点是变量的类型,即,它是numpy.matrix数据类型还是numpy.ndarray

如果是前者,那么你就有麻烦了


尽量避免使用numpy.matrix类型,特别是如果你想做任何线性代数运算,或者使用(d/v/h)stack等来堆叠它们,并坚持使用numpy.ndarray

python将大型化为矩阵的意思是什么?你使用的是
np.matrix
?如果是这样,请尝试
np.array(X_Train).重塑(10074,3,6,1)
@juliodanielries谢谢!这是工作!很高兴它成功了,我将把它作为答案,以防万一其他人有这个问题a
matrix
array只能有2维;所以不能被重塑为4d。