python - 从数组创建矩阵

标签 python arrays numpy matrix

我正在尝试从数组构造矩阵对象。该数组的长度为 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]])

关于python - 从数组创建矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33612432/

相关文章:

Python:检查 Facebook 用户是否已授予访问我的应用程序的权限。 "HTTP Error 400: Bad Request"失败

java - java中二维数组的索引

C# 将 ReadOnlyCollection<int> 转换为 byte[] 数组

python - 为什么 h5py 在向数据集中添加 3 个可变长度字符串时会抛出错误?

python - 向量化函数转换为向量化函数 Python

python - 具有来自单个列表的嵌套类别的字典

python - Pandas 条件滚动计数

python - pymongo 从 GridFS 中获取图像

android - 将字符串动态插入到Android中的字符串数组中

python - 对数间隔值低于 1