为每个迭代存储值numpython

为每个迭代存储值numpython,python,arrays,numpy,while-loop,sum,Python,Arrays,Numpy,While Loop,Sum,下面的代码通过Vals函数,它通过数字值进行分类,并在排序后将所有总和相加。我试图将SUM值附加到T\u SUM以存储每个排序的SUM值 Vals= np.arange(start=60, stop=105, step=5) Numbers = np.array([123.6, 130 , 150, 110.3748, 111.6992976, 102.3165566, 97.81462811 , 89.50038472 , 96.481414

下面的代码通过
Vals
函数,它通过
数字
值进行分类,并在排序后将所有总和相加。我试图将
SUM
值附加到
T\u SUM
以存储每个排序的
SUM

Vals= np.arange(start=60, stop=105, step=5)
Numbers = np.array([123.6,       130 ,       150,        110.3748,     111.6992976,
 102.3165566,   97.81462811 , 89.50038472 , 96.48141473 , 90.49956702, 65])
T_Sum = np.array([])
p= 0 

while len(Vals) != p:
    Numbers= np.where(Numbers >= Vals[p],Numbers ,0 )
    p = p + 1
    SUM = np.sum(Numbers)
    T_Sum = np.concatenate((T_Sum, SUM))

print(T_Sum)

这应该做同样的事情:

Vals= np.arange(start=60, stop=105, step=5)
Numbers = np.array([123.6,       130 ,       150,        110.3748,     111.6992976,
 102.3165566,   97.81462811 , 89.50038472 , 96.48141473 , 90.49956702, 65])
T_sum = np.empty(len(Vals))
count = 0

for i in Vals:
    Numbers= np.where(Numbers >= Vals[p],Numbers ,0 )
    SUM = np.sum(Numbers)
    T_sum[count] = SUM
    count += 1

您可以使用掩码数组来掩码所需的值,然后将它们汇总到一行中:

T_Sum = np.ma.masked_array(np.repeat(Numbers[None,:],Vals.size,0),mask=[Numbers<Vals[:,None]]).sum(-1).data

那么问题是什么呢?您好,我为一个tpic提出了另一个问题,如果您看一下,我将不胜感激:
array([1167.28664878, 1167.28664878, 1102.28664878, 1102.28664878,
       1102.28664878, 1102.28664878, 1012.78626406,  922.28669704,
        727.9906542 ])