预成型PCA之后,我得到了我的(重新定标的比例和比例的比例)数组,其总和为1。我必须通过许多组件来获得良好的图形-因此,我希望能够以某种方式设置所需的累积总和并获得多少我需要获取数组的组件。举个例子[0, 1, 2, 3, 4, 5]
,我希望累积的总和为6,我得到的答案是我需要四个条目。
我的解决方案是与numpy.cumsum
一起使用numpy.where
:
arr = np.arange(6) # dummy data
max_cum = 6 # your stop certerion
arr_cum = arr.cumsum() # calculate cumulative sums of your array
num = np.where(arr_cum >= max_cum) # get indices where arr_cum passes your max_cum
>> In: num[0][0]
>> Out:
3
num
包含所有包含等于或高于停止条件的值的索引,因此您将需要获取第一个索引(numpy.where
返回2D数组,因此需要[0][0]
)。
一线功能:
def lowest_cum(arr, max_cum):
return np.where(arr.cumsum() >= max_cum)[0][0]
>> In: lowest_cum(arr=np.arange(6), max_cum=6)
>> Out:
3
编辑:不用说,您需要+1的条目数,因为该函数将返回完成累加的第一个索引,因此索引3表示4个条目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句