numpy:将 numpy 数组的每个元素与另一个数组的每个元素相加 [英] numpy: summing every element of numpy array with every element of another
本文介绍了numpy:将 numpy 数组的每个元素与另一个数组的每个元素相加的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我从 Matlab 开始学习 Python.在Matlab中,给定两个长度不一定相同的向量,如果一个是行向量,一个是列向量,就可以相加.
v1 = [1 3 5 7]v2 = [2 4 6]'v1 + v2答案 =3 5 7 95 7 9 117 9 11 13
我试图在给定两个 numpy 数组的情况下在 python 中产生相同的行为.首先想到的是循环:
将 numpy 导入为 npv1 = np.array([1,3,5,7])v2 = np.array([2,4,6])v3 = np.empty((3,4,))v3[:] = np.nan对于范围内的 i (0,3):v3[i,:] = v1 + v2[i]
有没有更简洁高效的方法?
解决方案
import numpy as npv1 = np.array([1, 3, 5, 7])v2 = np.array([2, 4, 6])v1 + v2[:, 无]
您可以阅读有关numpy 的广播规则的更多信息.>
I'm coming to python from Matlab. In Matlab, given two vectors that are not necessarily the same length, they can be added if one is a row vector and one is a column vector.
v1 = [1 3 5 7]
v2 = [2 4 6]'
v1 + v2
ans =
3 5 7 9
5 7 9 11
7 9 11 13
I am trying to produce the same behavior in python given two numpy arrays. Looping first came to mind:
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]
Is there a more concise and efficient way?
解决方案
import numpy as np
v1 = np.array([1, 3, 5, 7])
v2 = np.array([2, 4, 6])
v1 + v2[:, None]
You can read more about numpy's broadcasting rules.
这篇关于numpy:将 numpy 数组的每个元素与另一个数组的每个元素相加的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文