python数组元素累加,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)

标签:python,pandas,sum,performance

来源: https://codeday.me/bug/20190527/1162146.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值