查找数字是否在某个范围内

时间:2013-11-30 20:16:48

标签: python arrays numpy

我正在尝试将数字分类为“bins”,因此如果bin是0到20范围内的所有数字,则19落入该bin。

我试图在不使用if-then状态的情况下这样做:

if x < 0.5:
    return "bin1"
elif x < 0.8:
    return "bin2"
...

Numpy有一个numpy.linspace方法,它生成一个numpy数组,并且间隔均匀。但是,我仍然没有看到如何有效地进行这种bin分类,而没有获取数组的结果并将它们放在“if”语句中。感谢。

2 个答案:

答案 0 :(得分:6)

import bisect

bins = range(0, 100, 15)

print bisect.bisect_left(bins, 35)

答案 1 :(得分:3)

您可以使用numpy.searchsorted

>>> import numpy as np    

>>> bins = np.array([0, 10, 100, 1000])
>>> numbers = np.array([800, 8, 80])
>>> print bins.searchsorted(numbers)
[3, 1, 2]