为每个迭代存储值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 ])