Python矩阵,有解决方案吗?

Python矩阵,有解决方案吗?,python,matrix,numpy,sum,Python,Matrix,Numpy,Sum,我的输入仅举个例子: from numpy import * x=[['1' '7'] ['1.5' '8'] ['2' '5.5'] ['2' '9']] 我想在随机矩阵上做下一件事: 一,。每行计算: 这对于numpy很简单,因为转置就是x.T,如果x=[1,7] 这必须为矩阵上的每一行计算 二,。现在我想用这种方式求和 结果就是这个矩阵 有什么想法吗 编辑2: 我收到错误: 列表索引必须是整数,而不是 元组 但是如果x是x=numpy.array[[1,7],[1.5,8],[

我的输入仅举个例子:

from numpy import * 

x=[['1' '7']
 ['1.5' '8']
 ['2' '5.5']
 ['2' '9']]
我想在随机矩阵上做下一件事:

一,。每行计算:

这对于numpy很简单,因为转置就是x.T,如果x=[1,7] 这必须为矩阵上的每一行计算

二,。现在我想用这种方式求和

结果就是这个矩阵

有什么想法吗

编辑2: 我收到错误:

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


但是如果x是x=numpy.array[[1,7],[1.5,8],[2,5.5],[2,9]],那么这没关系,但我没有这样的输入。

下面的情况如何:

In [1]: import numpy as np

In [2]: x=np.array([[1, 7],[1.5, 8],[2, 5.5],[2, 9]])

In [3]: np.sum(np.outer(row,row) for row in x)
Out[3]: 
array([[  11.25,   48.  ],
       [  48.  ,  224.25]])

首先,应创建包含浮点数而不是字符串的矩阵:

x = numpy.array([[1, 7], [1.5, 8], [2, 5.5], [2, 9]])
接下来,您可以使用NumPy构建产品矩阵:

y = x[:, :, None] * x[:, None]
print y.sum(axis=0)
最后,对所有矩阵求和:

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

[[  11.25   48.  ]
 [  48.    224.25]]

请注意,此解决方案避免了任何Python循环。

只需添加矩阵即可?是否确实希望x是字符串数组?嗯,这对我来说非常合适;但我的输入是:x=['1''7']['1.5''8']['2''5.5']['2''9']]如何实现您的代码?我尝试使用数组,但没有成功…@thaking:为什么你的矩阵包含字符串?通常,您应该以一种从一开始就有一个浮点数矩阵的方式初始化它。如果由于任何原因这是不可能的,可以使用x=x.astypefloat转换矩阵。请注意,我无法想象为什么有必要这样做。请看我的编辑2,其中我描述了我的输入数据问题…以及为什么我无法获得矩阵。。thanks@thaking这似乎是一个毫不相干的问题。你可能想问一个新问题。确保在新问题中解释原始输入的来源。@thaking:正如我在帖子中所说的,你应该将矩阵初始化为一个浮点数组,而不是像在编辑中那样,初始化为字符串列表。NumPy数组和Python列表是非常不同的数据类型,您尝试对它们使用相同的代码。
[[  11.25   48.  ]
 [  48.    224.25]]