【问题标题】:convert a 2D numpy array to a 2D numpy matrix将 2D numpy 数组转换为 2D numpy 矩阵
【发布时间】:2013-06-30 21:14:30
【问题描述】:

我有一个 python 代码,我必须在其中将 2D 数组转换为 2D 矩阵,以便我可以使用它来计算逆矩阵。为此,我正在使用 numpy.matrix(array) 但它不起作用。谁能告诉如何将二维数组转换为 numpy 矩阵?该数组由所有浮点数组成

【问题讨论】:

标签: python arrays numpy matrix


【解决方案1】:

如果你有一个列表列表(如你所提到的),你需要先将它转换为一个 numpy 数组;见how to convert 2d list to 2d numpy array?

这里给出一个简短的例子:

import numpy as np
a = [[  0. +0.j,   1.j,   2. -2.j],
     [  4. -4.j,   5. -5.j,   6. -1.j],
     [  8. -8.j,   9. -9.j,  10.]]
b = np.matrix(np.array(a))
b_inv = np.linalg.inv(b)

【讨论】:

    【解决方案2】:

    如果a 是您的数组,则np.asmatrix(a) 是一个矩阵。

    【讨论】:

    • 错误文件“C:\xampp\htdocs\webdev\123.py”,第 47 行,在 中打印 AI 文件“C:\Python27\lib\site-packages\numpy\matrixlib \defmatrix.py”,第 859 行,在 getI 返回 asmatrix(func(self)) 文件“C:\Python27\lib\site-packages\numpy\linalg\linalg.py”,第 1574 行,in pinv u, s, vt = svd(a, 0) 文件“C:\Python27\lib\site-packages\numpy\linalg\linalg.py”,第 1278 行,在 svd a =_fastCopyAndTranspose(t, a) 文件“C:\Python27\ lib\site-packages\numpy\linalg\linalg.py",第 145 行,在 _fastCopyAndTranspose cast_arrays = cast_arrays + (_fastCT(a.astype(type)) ValueError: setting an array element with a sequence.
    • @abcdxx 来吧,你不能只用一堆错误消息轰炸我,尤其是没有上下文。 什么给你这个错误,你传递了什么参数到哪个函数等等?
    • 我创建了一个二维列表,我使用 np.array 将其转换为数组,然后使用 A.I 进一步从矩阵求逆,其中 A=np.asmatrix(array) 但它给出了上述错误
    • 为什么不直接将该列表转换为矩阵?无论如何,如果您无法通过谷歌找到它,您可能应该在有关此错误的新问题中发布一个最低限度的工作示例。
    • 所以你得到了一个答案there,你可以看到.asmatrix被使用了
    猜你喜欢
    • 2016-08-25
    • 2016-09-28
    • 2012-06-08
    • 2016-02-28
    • 2021-12-29
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多