如何在 numpy 中添加计算/计算列?

Use*_*ser 3 python arrays numpy calculated-columns

假设我有一个 numpy 数组:

1 10
2 20
3 0
4 30
Run Code Online (Sandbox Code Playgroud)

我想添加第三列,其中每行是该行中前两列的总和(或某种任意计算):

1 10 11
2 20 22
3 0  3
4 30 34
Run Code Online (Sandbox Code Playgroud)

我怎么做?

daw*_*awe 5

对于此类计算,内置地图功能非常有用。只需将计算结果添加到第三列即可。求和:

>>> import numpy as np
>>> my_arr = np.array([[1, 10], [2, 20], [3, 0], [4, 30]])
>>> np.vstack( (my_arr.T, map(sum, my_arr) )).T
array([[ 1, 10, 11],
       [ 2, 20, 22],
       [ 3,  0,  3],
       [ 4, 30, 34]])
Run Code Online (Sandbox Code Playgroud)

它还可以与其他功能一起使用:

>>> my_func = lambda x: 2*x[0] + x[1]
>>> np.vstack( (my_arr.T, map(my_func, my_arr) )).T
array([[ 1, 10, 12],
       [ 2, 20, 24],
       [ 3,  0,  6],
       [ 4, 30, 38]])
Run Code Online (Sandbox Code Playgroud)