找出一个数是否在某个范围内python

2024-07-05 14:15:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着把数字分类到“箱子”里,所以如果一个箱子里所有的数字都在0到20之间,那么19个就属于这个箱子。在

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

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

Numpy有一个numpy.linspace方法,该方法生成具有等间距存储单元的numpy数组。但是,如果不获取数组的结果并将它们放入“if”语句中,我仍然不知道如何有效地进行bin分类。谢谢。在


Tags: 方法numpyreturnif状态分类情况数字
2条回答
import bisect

bins = range(0, 100, 15)

print bisect.bisect_left(bins, 35)

您可以使用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]

相关问题 更多 >