Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python矩阵问题_Python_Matrix_Numpy - Fatal编程技术网

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结果矩阵。