《NumPy快速入门》05 查找元素

89 阅读1分钟

索引

需要遍历整个数组。

image.png

a = [1,2,3,4,5]
a.index(3, 2, 5)

# 需要遍历整个数组。
np.where(np.array(a) == 3)[0][0] 

# 使用[Numba](https://numba.pydata.org/)实现加速查找
next(i[0] for i, v in np.ndenumerate(np.array(a)) if v == 2)

# O(log N) ~ O(N log N)
np.searchsorted(np.array(a), 2)

浮点数比较

image.png

# 比较数字的尺度为1
np.allclose(1e-9,2e-9)

# 修改尺度atol=1e-17
np.allclose(1e-9,2e-9, atol=1e-17)

# isclose默认atol=1e-8
np.isclose(0.1+0.2, 0.3)