我得到一个包含正数和负数的数组。
import numpy as np
arr = np.array([-10.2, -5.3, -2.1, 0, 1.2, 3.4])
我想找到对应于最大负数和最小正数的索引。在上面,我的预期结果是2
和4
。是否有任何numpy
技巧来实现这一目标?我在这个链接中找到了一个解决方案,但我想知道如何通过qazxswpoi函数来完成:numpy
用Finding index of largest negative and smallest positive element in array替换非负值,然后使用-inf
找到最大的负数:
argmax
同样用np.where(arr < 0, arr, -np.inf).argmax()
# 2
替换非正值,然后使用inf
找到最小的正值:
argmin
如果您的数组始终排序(如提供的示例中所示),则:
np.where(arr > 0, arr, np.inf).argmin()
# 4