我做了如下分类.
1~4 : 0
5~9 : 1
10~15 : 2
我有一个numpy数组如下.
np.array([2, 5, 10, 13, 7, 9])
我怎样才能最快地根据给定的条件改变numpy数组,如下所示?
np.array([0, 1, 2, 2, 1, 1])
因为我认为"for loop"会消耗很多时间.
有什么方法可以使时间计算最快?
我做了如下分类.
1~4 : 0
5~9 : 1
10~15 : 2
我有一个numpy数组如下.
np.array([2, 5, 10, 13, 7, 9])
我怎样才能最快地根据给定的条件改变numpy数组,如下所示?
np.array([0, 1, 2, 2, 1, 1])
因为我认为"for loop"会消耗很多时间.
有什么方法可以使时间计算最快?
您也可以使用np.searchsorted
,如下所示:
a = np.array([2, 5, 10, 13, 7, 9])
np.searchsorted([4, 9, 15], a)
array([0, 1, 2, 2, 1, 1], dtype=int64)
labels = np.array([23, 45, 87])
labels[np.searchsorted([4, 9, 15], a)]
array([23, 45, 87, 87, 45, 45])