numpy:将 numpy 数组的每个元素与另一个数组的每个元素相加
numpy: summing every element of numpy array with every element of another
我要从 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's broadcasting rules 的更多信息。
试试这个:
for i in v2:
z = []
for j in v1:
z.append(i+j)
print(z)
我要从 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's broadcasting rules 的更多信息。
试试这个:
for i in v2:
z = []
for j in v1:
z.append(i+j)
print(z)