首页 > 解决方案 > How can i add values to an array with numpy?

问题描述

in this code im trying to add the sum of values and add it to an array named array_values, but it didnt, only prints []

array_values = ([])

value = 0.0
for a in range(0, 8):
    for b in range (1, 5):
        value = value + float(klines[a][b])
        #print(value)
    np.append(array_values, value)#FIX array_values.append(value)
    print("añadiendo: ",value)
    value = 0.0

print(array_values)

标签: pythonnumpy

解决方案


假设klines是一个二维数字 dtype 数组:

In [231]: klines = np.arange(1,13).reshape(4,3)
In [232]: klines
Out[232]: 
array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]])

我们可以通过以下方式对行进行简单求和:

In [233]: klines.sum(axis=1)
Out[233]: array([ 6, 15, 24, 33])

使用您的迭代风格的等效项:

In [234]: alist = []
     ...: value = 0
     ...: for i in range(4):
     ...:     for j in range(3):
     ...:         value += klines[i,j]
     ...:     alist.append(value)
     ...:     value = 0
     ...: 
In [235]: alist
Out[235]: [6, 15, 24, 33]

的使用np.append更慢,更难正确。

即使klines是列表列表,也可以通过以下方式轻松完成总和:

In [236]: [sum(row) for row in klines]
Out[236]: [6, 15, 24, 33]

推荐阅读