具有多个numpy数组的矩阵乘法

时间:2018-11-15 22:28:27

标签: python python-3.x numpy scipy

将矩阵与numpy向量数组相乘的最快方法是什么?我需要将矩阵A乘以1000个向量列表中的每个向量。使用for循环会花费太长时间,因此我想知道是否有一种方法可以一次将它们全部相乘?

示例:

arr = [[1,1,1], [1,1,1],[1,1,1]]

A=
[2 2 2]
[2 2 2]

所以我需要将arr中的每个v乘以Av。结果:

arr = [[6,6], [6,6], [6,6]]

有没有比以下更快的方法?

new_arr = []
for v in arr:
    sol = np.matmul(A, v)
    new_arr.append(sol)

1 个答案:

答案 0 :(得分:0)

好像您想要点积:

new_arr = np.dot(arr, A.T)

其中arrA是numpy数组:

arr = np.array([[1,1,1], [1,1,1],[1,1,1]])
A = np.array([[2,2, 2],[2,2,2]])

结果:

array([[6, 6],
       [6, 6],
       [6, 6]])

根据您的修改,所需的点积可能是:

new_arr = np.dot(A, arr).T

两者都返回相同的结果,但计算方法不同。