Skip to main content
 首页 » 编程设计

python之从数组创建矩阵

2025年05月04日33findumars

我正在尝试从数组构造矩阵对象。该数组的长度为 25,而我要做的是从中构造一个 5x5 矩阵。我同时使用了 numpy.asmatrix() 和矩阵构造函数,但两者都产生了一个长度为 1 的矩阵。所以,基本上发生的是数组的所有元素都被视为一个元组并插入到新创建的矩阵中.有什么办法可以解决这个问题,这样我就可以完成我想要的吗?

编辑: 当我写“数组”时,我天真地指的是普通的 python 列表,而不是实际的 numpy.array,这会使事情变得更简单。我的错误。

请您参考如下方法:

认为您可能只需要 .reshape():

In [2]: a = np.arange(25) 
 
In [3]: a 
Out[3]: 
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 
       17, 18, 19, 20, 21, 22, 23, 24]) 
 
In [4]: a.reshape(5,5) 
Out[4]: 
array([[ 0,  1,  2,  3,  4], 
       [ 5,  6,  7,  8,  9], 
       [10, 11, 12, 13, 14], 
       [15, 16, 17, 18, 19], 
       [20, 21, 22, 23, 24]]) 

如果你需要的话,你也可以把它转换成一个np.matrix:

In [5]: np.matrix(a.reshape(5,5)) 
Out[5]: 
matrix([[ 0,  1,  2,  3,  4], 
        [ 5,  6,  7,  8,  9], 
        [10, 11, 12, 13, 14], 
        [15, 16, 17, 18, 19], 
        [20, 21, 22, 23, 24]]) 

编辑:如果你有一个列表开始,它仍然不错:

In [16]: l = range(25) 
 
In [17]: np.matrix(np.reshape(l, (5,5))) 
Out[17]: 
matrix([[ 0,  1,  2,  3,  4], 
        [ 5,  6,  7,  8,  9], 
        [10, 11, 12, 13, 14], 
        [15, 16, 17, 18, 19], 
        [20, 21, 22, 23, 24]])