Python 矩阵问题

-1 投票
2 回答
2106 浏览
提问于 2025-04-16 16:41

这是接着之前的讨论继续的内容:Python 矩阵,有什么解决方案吗?


输入

from numpy import *
import numpy

x=[['1','7'],
 ['1.5', '8'],
 ['2', '5.5'],
 ['2','9']]

代码

y = x[:, :, None] * x[:, None]
print y.sum(axis=0)

我遇到了一个错误:

"列表索引必须是整数,而不是元组"

但是如果 x 是 x = numpy.array([[1, 7], [1.5, 8], [2, 5.5], [2, 9]]),那就没问题,但我没有这样的输入

2 个回答

2

编辑:

我不太明白你在问什么或者想要达到什么目的。关于你提到的 [['1','7'] ...] 的评论:目前你列表里的元素是字符串;你可以很简单地把它们转换成数字,方法是:

xf = [[float(el) for el in m] for m in x]

原帖:

定义你的列表时,要在列表元素之间加上逗号:

x=[['1','7'],['1.5', '8'],['2', '5.5'],['2','9']]

当我没有这样做的时候,我遇到了你的错误,但通过这样做我避免了这个错误。

1

x 转换成一个数字的 numpy 数组:

x = numpy.asanyarray([[float(z) for z in y] for y in x])

撰写回答