我有两个数组:
array1 = [1,2,3]
array2 = [10,20,30]
我想要下一笔:
array3 = [10+1,10+2,10+3,20+1,20+2,20+3,30+1,30+2,30+3]
我该怎么做?
(我知道它可以用两个 for
循环来完成,但如果可能的话我想要更高效的东西)
注意:这两个数组包含在数据框(pandas)中
最佳答案
我认为这里不需要 pandas
[x+y for x in array2 for y in array1]
Out[293]: [11, 12, 13, 21, 22, 23, 31, 32, 33]
如果它们在数据框中
df=pd.DataFrame({'a':array1,'b':array2})
df
Out[296]:
a b
0 1 10
1 2 20
2 3 30
df.a.values+df.b.values[:,None]
Out[297]:
array([[11, 12, 13],
[21, 22, 23],
[31, 32, 33]], dtype=int64)
更新
(df.a.values+df.b.values[:,None]).ravel()
Out[308]: array([11, 12, 13, 21, 22, 23, 31, 32, 33], dtype=int64)
关于python - 将第一个数组的每个元素与第二个数组的所有元素相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50402400/