小编Ada*_*dam的帖子

Python - 快速总结外部产品的方法?

我正在寻找一种快速计算n种外部产品总和的方法.

本质上,我从正态分布生成的两个矩阵开始 - 有n个向量与v元素:

A = np.random.normal(size = (n, v))
B = np.random.normal(size = (n, v))
Run Code Online (Sandbox Code Playgroud)

我想要的是计算A和B中每个大小为v的向量的外积并将它们加在一起.

注意A * B.T不起作用 - A的大小为nxv,而B的大小为vx n.

我能做的最好的事情是创建一个外部产品构造的循环,然后再加总.我喜欢它:

outers = np.array([A[i] * B[i].T])
Run Code Online (Sandbox Code Playgroud)

这会创建一个nxvxv数组(循环在列表解析中,随后转换为数组),然后我可以使用它来加总np.sum(outers, axis = 0).然而,这是非常缓慢的,我想知道是否有一个矢量化函数,我可以使用它来加快速度.

如果有人有任何建议,我将非常感激!

python numpy scipy

8
推荐指数
2
解决办法
2674
查看次数

标签 统计

numpy ×1

python ×1

scipy ×1