【发布时间】:2021-07-15 22:55:40
【问题描述】:
我的代码中有两个 numpy 矩阵对象,一个是数字矩阵,另一个是我不想为其赋值的变量矩阵。我想要的结果是这样的:
[[ 1., 0., 0., 0., 0., 1., 0., 0., 0.],
[ 0., 1., 0., 0., 0., 1., -1., 1., -1.],
[ 0., 0., 1., 0., 0., 1., 0., 0., 0.],
[ 0., 0., 0., 1., 0., 0., 0., 1., -1.],
[ 0., 0., 0., 0., 1., -1., 0., 0., 1.]]
multiplied by the column vector
[['i8'],
['i4'],
['i9'],
['i5'],
['i2'],
['i1'],
['i7'],
['i6'],
['i3']]
Gives:
[[ i8+i1],
[i4+i1-i7+i6-i3],
[ i9+i1],
[ i5+i6-i3],
[ i2-i1+i3]]
我查看了 numpy 线性代数部分,但找不到任何可行的方法。我尝试使用 np.dot()、np.multiply(),尝试将它们转换为数组,但我不断收到签名匹配类型错误(我认为这是因为第二个矩阵由字符串组成)。我怎样才能将这些相乘得到我的方程式?
- 我知道不建议使用 numpy 矩阵对象,之所以在此处实现它们是因为我用来获取这些矩阵的 python 包以这种方式返回它们。
【问题讨论】:
-
“我知道不建议使用 numpy 矩阵对象”是什么意思?通常不推荐,还是在某些情况下像您这样?
-
我不想为其赋值的变量 -- numpy 不会这样做。
-
@j1-lee Numpy 矩阵对象通常不被推荐,它们仍然存在的唯一原因是与 scipy 的东西交互,一般意图是最终删除 numpy.matrix 类。有关 numpy 文档的更多信息
-
np.matrix的使用无关紧要。这里的问题是数字和字符串的乘法。1.0*'l1' -
@CharlesKelly 哦,我明白了,我什至不知道
np.matrix的存在。我以为你的意思是np.array。谢谢你澄清它。我今天学到了一些新东西:)
标签: python numpy matrix linear-algebra