首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个numpy阵列的矩阵乘法

多个numpy阵列的矩阵乘法
EN

Stack Overflow用户
提问于 2018-11-15 22:28:26
回答 1查看 3.7K关注 0票数 2

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

示例:

代码语言:javascript
复制
arr = [[1,1,1], [1,1,1],[1,1,1]]

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

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

代码语言:javascript
复制
arr = [[6,6], [6,6], [6,6]]

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

代码语言:javascript
复制
new_arr = []
for v in arr:
    sol = np.matmul(A, v)
    new_arr.append(sol)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-15 23:02:21

似乎你想要一个点产品:

代码语言:javascript
复制
new_arr = np.dot(arr, A.T)

其中arrA是numpy数组:

代码语言:javascript
复制
arr = np.array([[1,1,1], [1,1,1],[1,1,1]])
A = np.array([[2,2, 2],[2,2,2]])

结果:

代码语言:javascript
复制
array([[6, 6],
       [6, 6],
       [6, 6]])

根据您的编辑,您想要的点产品可能是:

代码语言:javascript
复制
new_arr = np.dot(A, arr).T

两者返回相同的结果,但计算不一样。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53328768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档