python - numpy:将numpy数组的每个元素与另一个数组的每个元素相加
问题描述
我从 Matlab 来到 python。在 Matlab 中,给定两个长度不一定相同的向量,如果一个是行向量,一个是列向量,则可以将它们相加。
v1 = [1 3 5 7]
v2 = [2 4 6]'
v1 + v2
ans =
3 5 7 9
5 7 9 11
7 9 11 13
给定两个 numpy 数组,我试图在 python 中产生相同的行为。首先想到的是循环:
import numpy as np
v1 = np.array([1,3,5,7])
v2 = np.array([2,4,6])
v3 = np.empty((3,4,))
v3[:] = np.nan
for i in range(0,3):
v3[i,:] = v1 + v2[i]
有没有更简洁有效的方法?
解决方案
import numpy as np
v1 = np.array([1, 3, 5, 7])
v2 = np.array([2, 4, 6])
v1 + v2[:, None]
你可以阅读更多关于numpy 的广播规则。
推荐阅读
- python - 使用 pymodm 连接 MongoDB 服务器的 Python 脚本中的身份验证失败错误
- javascript - 如何在数组[]中显示对象
- arrays - 最小化 (A[i]*B[i]) 的最大值
- sql-server - SQL:遍历文件夹并发送带有附件和存档文件的电子邮件。执行 sp_send_dbmail
- python - AttributeError:“NoneType”对象没有属性“通道”
- laravel - Laravel 身份验证中间件
- r - 如何在 R 中以有组织的方式读取 csv 列
- wordpress - 如何从插件和其他来源捆绑 WordPress JS 和 CSS 文件
- javascript - 为什么我不能在 numbro.js 中设置语言?
- python - Python 3.4.2,从文本文件中读取并相应打印