如何在python中使用列表理解与矩阵?

ce1*_*ce1 2 python list-comprehension matrix

如何使用列表理解编写以下内容?

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
Run Code Online (Sandbox Code Playgroud)

我相信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
Run Code Online (Sandbox Code Playgroud)

Blo*_* Ma 5

你非常接近正确的答案,因为你应该适用sum于正确的目标

return [sum([A[i][j] * X[j] for j in range(n)]) for i in range(n)]
Run Code Online (Sandbox Code Playgroud)

注意:如果你想用库做数学,numpy是个不错的选择

import numpy as np
def mv2(A, X):
    A = np.array(A)
    X = np.array(X)
    return np.dot(A, X)
Run Code Online (Sandbox Code Playgroud)