看来numpy的searchsorted
做错了。对于任何大于ratios.values
的最小数字(〜0.001)的数字,它总是给我最高的索引(285)。但是,如果在此位置插入,显然会破坏ratios.values
中的现有顺序。
>>> ratios = df.activity.value_counts(normalize=True)
>>> np.searchsorted(ratios.values, 0.06)
285
>>> np.searchsorted(ratios.values, 0.006)
285
>>> np.searchsorted(ratios.values, 0.001)
0
对于0.06,我希望返回索引1,因为0.06应该放在ratios.values
的第一和第二个元素之间。