微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 将第一个数组的每个元素与第二个数组的所有元素相加

我有两个数组:

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)中

解决方法:

我不认为这里有大熊猫

[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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐