python,numpy矩阵必须是二维的

python,numpy矩阵必须是二维的,numpy,Numpy,为什么第3行提升值错误“矩阵必须是二维的” import numpy as np np.mat([[[1],[2]],[[10],[1,3]]]) np.mat([[[1],[2]],[[10],[1]]]) 此代码引发错误的原因是NumPy试图使用嵌套级别(嵌套级别->维度)确定输入的维度。 如果在某种程度上,某些元素的长度不同(即它们不兼容),它将使用最深的嵌套创建数组,将对象用作数组的元素 因此: np.mat([[[1],[2]],[[10],[1,3]]]) 将为您提供对象矩阵(列

为什么第3行提升值错误“矩阵必须是二维的”

import numpy as np
np.mat([[[1],[2]],[[10],[1,3]]])
np.mat([[[1],[2]],[[10],[1]]])

此代码引发错误的原因是NumPy试图使用嵌套级别(嵌套级别->维度)确定输入的维度。 如果在某种程度上,某些元素的长度不同(即它们不兼容),它将使用最深的嵌套创建数组,将对象用作数组的元素

因此:

np.mat([[[1],[2]],[[10],[1,3]]])
将为您提供对象矩阵(列表),同时:

将产生一个3D数字数组,
np.mat()
不想挤到矩阵中

另外,请避免在代码中使用
np.mat()
,因为它已被弃用。 改用
np.array()

顺便说一句,
np.array()
在这两种情况下都可以工作,它将为您提供一个
(2,2,1)
形状的
int
数组,您可以
np.square()
到一个矩阵中,如果您愿意的话。 但是,如果只需要一个矩阵,最好从嵌套级别2开始:

np.array([[1, 2], [10, 1]])

请不要使用
矩阵
API。看:没问题。如果这解决了您的问题,也许您可以将其升级/标记为解决方案。
np.array([[1, 2], [10, 1]])