2017-12-18 314 views
2

我如何使用列表理解来编写以下内容?如何在Python中使用列表理解与矩阵?

def mv(A,X,n): 
    Y = [0]*n 
    for i in range(n): 
     for j in range(n): 
      Y[i] += A[i][j] * X[j] 
    return Y 

我相信A是一个矩阵,X是一个向量。这是我到目前为止已经试过,但它不输出同样的事情:

def mv2(A,X,n): 
    res = [sum((A[i][j] * X[i]) for i in range(n) for j in range(n))] 
    return res 

回答

5

你很接近正确答案,你应该在正确的目标

return [sum([A[i][j] * X[j] for j in range(n)]) for i in range(n)] 

申请 sum

注意:如果你想要做的数学与图书馆,numpy是一个不错的选择

import numpy as np 
def mv2(A, X): 
    A = np.array(A) 
    X = np.array(X) 
    return np.dot(A, X) 
+0

谢谢你哟你的帮助。出于好奇,是否使用numpy被认为与数组编程范例相符? – ce1

+1

@ ce1在数据科学领域,我会说'numpy'是python的一个标准。它是为数组编程设计的。 –