有效地计算总和矩阵

延斯渲染

给定 2 个 numpy (1D) 数组,我想计算包含这两个数组元素的所有可能总和的二维数组。例如,像这样:

import numpy as np

v = np.array([1, 2, 3])
w = np.array([4, 5, 6])

sum_matrix = np.zeros((3,3))
for i in range(3):
    for j in range(3):
        sum_matrix[i,j] = v[i] + w[j]

print(sum_matrix)

这将返回正确答案

[[5. 6. 7.]
 [6. 7. 8.]
 [7. 8. 9.]]

但我想避免 python 循环(当然还有双重循环)。对于这种情况,是否有一些不错的 numpy 功能?

我可以想到一种避免所有循环的解决方案,但感觉有点像黑客。我注意到如果v是一个列矩阵和w一个行矩阵,那么矩阵乘积v @ w返回所有可能乘积的矩阵。我可以使用logand将其转换为总和exp

v = v[np.newaxis].T  # Turn v into a column matrix
w = w[np.newaxis]    # Turn w into a row matrix

print(np.log(np.exp(v) @ np.exp(w)))

这与上面的打印相同。

问题:对于这个问题,还有其他更简单、更笨拙的解决方案吗?

亚图

您可以使用np.add.outer,这将在应用np.add上的每个值vw

np.add.outer(v,w)

array([[5, 6, 7],
       [6, 7, 8],
       [7, 8, 9]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何有效地获得矩阵总和?

来自分类Dev

有效地计算邻接矩阵

来自分类Dev

如何在python中有效地计算(稀疏)位矩阵的矩阵乘积

来自分类Dev

有效地在Matlab中计算两倍总和?

来自分类Dev

我可以更有效地计算2ⁿ的数字总和吗?

来自分类Dev

有效地计算R中的滚动行总和

来自分类Dev

如何使用Matlab有效地计算矩阵项

来自分类Dev

有效地计算3X3矩阵的行列式变化?

来自分类Dev

使用Numpy有效地计算欧几里得距离矩阵

来自分类Dev

如何在numpy中有效地计算高斯核矩阵?

来自分类Dev

如何有效地计算多个时间序列的欧几里得距离矩阵

来自分类Dev

使用Numpy有效地计算欧几里得距离矩阵

来自分类Dev

如何在Python中有效地计算巨大的矩阵乘法(tfidf功能)?

来自分类Dev

有效地串联多个大小不同的矩阵

来自分类Dev

从矩阵有效地减去向量(Scipy)

来自分类Dev

有效地将多维矩阵相乘

来自分类Dev

有效地填充稀疏矩阵

来自分类Dev

有效地连接大矩阵的长列表

来自分类Dev

如何有效地对 numpy 矩阵进行排序

来自分类Dev

如何有效地计算对数回报

来自分类Dev

有效地计算(a-K)/(a + K)

来自分类Dev

numpy有效地计算多项式

来自分类Dev

有效地计算双积分

来自分类Dev

有效地计算体素数据的梯度

来自分类Dev

如何有效地计算数据

来自分类Dev

如何有效地计算跑步中位数

来自分类Dev

熊猫-有效地计算组合算术

来自分类Dev

如何有效地使用OWLAPI计算脱节?

来自分类Dev

如何有效地计算怪异数字