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

标签 python performance pandas sum

我有两个数组:

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/

相关文章:

C++ 打开一个文件并写入文件的任意位置

mysql - 对于小型 Web 项目,MySQL 或 Oracle 哪个更快?

python - Plpython 程序中的 Greenplum pandas 数据框集成(来自数据库内部)

python - 可调整大小的窗口命令 python-maya

python - 带有 Svg 图像的 pyQt 悬停事件

python - 对列表的列表进行分组,并计算唯一的第一个元素的第二个元素的出现次数

PHP + pthreads : Build one big object - parallel-processing

python - Pandas 读取带空白的多索引 csv

python - 获取 pandas 子组的统计数据

python - 使用python从时间戳中提取小时