Python矩阵问题
这是从这个线程继续的:Python矩阵问题,python,matrix,numpy,Python,Matrix,Numpy,这是从这个线程继续的: 输入 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]])那么就可以了,但是我没有
输入
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]])
那么就可以了,但是我没有这样的输入在内部列表之间缺少逗号:
x = [['1', '7'],
['1.5', '8'],
['2', '5.5'],
['2', '9']]
错误消息源于Python看到
['1','7']['1.5','8']
并试图使用元组('1.5','8')
作为列表的索引['1','7']
内部列表之间缺少逗号:
x = [['1', '7'],
['1.5', '8'],
['2', '5.5'],
['2', '9']]
该错误消息源于Python看到['1','7']['1.5','8']
并试图使用元组('1.5','8')
作为列表的索引['1','7']
编辑:
我不是100%清楚你在这里要求/试图实现什么。回应关于拥有[['1','7']…]的评论:当前列表中有字符串元素;您可以使用以下工具轻松地转换为数字元素:
xf = [[float(el) for el in m] for m in x]
原职:
通过在列表元素之间添加逗号来定义列表:
x=[['1','7'],['1.5', '8'],['2', '5.5'],['2','9']]
当我没有这样做时,我得到了您的错误,但通过这样做,我避免了错误。编辑:
我不是100%清楚你在这里要求/试图实现什么。回应关于拥有[['1','7']…]的评论:当前列表中有字符串元素;您可以使用以下工具轻松地转换为数字元素:
xf = [[float(el) for el in m] for m in x]
原职:
通过在列表元素之间添加逗号来定义列表:
x=[['1','7'],['1.5', '8'],['2', '5.5'],['2','9']]
当我没有这样做时,我得到了您的错误,但通过这样做,我避免了错误。将
x
转换为numpy数字数组:
x = numpy.asanyarray([[float(z) for z in y] for y in x])
将
x
转换为数字的numpy数组:
x = numpy.asanyarray([[float(z) for z in y] for y in x])
列表与numpy数组不同。如果你想使用numpy操作,你需要先把列表转换成数组。我该怎么做?我尝试了很多东西,但都没有成功。在输入中,您在每行后面都省略了逗号。我的问题是我有[[1','7']…]而不是[[1,7]…]请不要
从numpy导入*
;这将用大量函数污染名称空间,并混淆代码的读者(包括人类和代码分析工具)。如果要在键入时保存,请选择import numpy as np
。列表与numpy数组不同。如果你想使用numpy操作,你需要先把列表转换成数组。我该怎么做?我尝试了很多东西,但都没有成功。在输入中,您在每行后面都省略了逗号。我的问题是我有[[1','7']…]而不是[[1,7]…]请不要从numpy导入*
;这将用大量函数污染名称空间,并混淆代码的读者(包括人类和代码分析工具)。如果你想节省打字时间,最好选择导入numpy作为np
。我知道,但我的输入比这大得多,而且是随机的,我不能在元素之间添加逗号!我这里的元素只是一个例子……为什么不能添加逗号?也许你的问题是你不能添加逗号,而不是你不需要逗号。我的问题是我有[[1','7']…]而不是[[1,7]…]我知道,但我的输入比这大得多,而且是随机的,我不能在元素之间添加逗号!我这里的元素只是一个例子……为什么不能添加逗号?也许你的问题是你不能添加逗号,而不是你不需要逗号。我的问题是我有['1','7']…]而不是[[1,7]…]我知道,但我的输入比这大得多,而且是随机的,C不能在元素之间添加逗号!我所拥有的这个元素只是一个例子……这并不能解决我的问题;我的问题是我有['1','7']…]而不是[[1,7]…]我知道,但是我的输入比这大得多,而且是随机的,C不能在元素之间加逗号!我所拥有的这个元素只是一个例子……这并不能解决我的问题;我的问题是我有['1','7']…]而不是[[1,7]…]这不会解决我的问题;我的问题是我有[[1','7']…]而不是[[1,7]]@ant:map
vs.列表理解是一个风格问题。我更喜欢这个解决方案,因为理解表达式反映了2d结果矩阵;我的问题是我有[[1','7']…]而不是[[1,7]]@ant:map
vs.列表理解是一个风格问题。我更喜欢这个解决方案,因为理解表达式反映了2d结果矩阵。