python - 如何在类似于点积的numpy中获得“点加法”?
问题描述
我对 numpy 有点陌生,并且正在努力解决这个问题。我有两个二维 numpy 数组:
array1 = [a1, a2, ..., an]
array2 = [b1, b2, ..., am]
a1
, a2
, b1
, 和b2
都是一维数组,其中正好有 100 个浮点数。但是,array1
并array2
有不同的长度。因此array1
和分别array2
具有形状(n, 100)
和(m, 100)
,其中n
和m
是任意长度。
我想在它们之间执行某种修改后的点积,这样我就可以输出以下矩阵:
array([[ a1+b1, a1+b2, a1+b3, ...],
[ a2+b1, a2+b2, a2+b3, ...],
[ a3+b1, a3+b2, a3+b3, ...],
[...]])
我明白这np.dot(array1, array2.T)
让我非常接近。它只是给了我a1•b1
而不是a1+b1
在所需的输出数组中。
对我来说,用 numpy 获得所需数组的最高效的计算方式是什么?提前致谢!
解决方案
np.outer
为此目的使用ufunc:
np.add.outer(array1,array2)
例子:
array1 = np.array([1,2,3])
array2 = np.array([1,2])
输出:
[[2 3]
[3 4]
[4 5]]
推荐阅读
- android - 如何使具有不同文本长度的按钮适合android中的同一行
- python - 为什么访问 `self.BASE_DIR` 会导致“AttributeError: 'str' object has no attribute 'BASE_DIR'”?
- python - 如何使用 Python 中的 API 使用 Discord 聊天机器人发送新闻?
- mysql - 如何在连接中使用 DISTINCT?
- java - 如何使用 ViewModel 和 LiveData 正确编码 RecyclerView
- android - Ionic:在没有 livereload 的情况下运行时出现白屏
- php - 为什么在 ubuntu 20 上安装 php7.4 我在控制台中有 php 8?
- reactjs - React Dom 附加子 onClick 不起作用
- azure-cosmosdb - 查询 CosmosDb 中的对象数组
- list - 如何使显示的价格根据所选项目进行调整?