mat*_*ree 2 python arrays numpy max minimum
我得到一个包含正数和负数的数组。
import numpy as np
arr = np.array([-10.2, -5.3, -2.1, 0, 1.2, 3.4])
Run Code Online (Sandbox Code Playgroud)
我想找到对应于最大负数和最小正数的索引。在上面,我的预期结果是2和4。有什么numpy技巧可以实现这一目标吗?我在此链接中找到了解决方案,但我想知道如何通过numpy函数完成此操作:
查找数组中最大负元素和最小正元素的索引
Psi*_*dom 15
用 替换非负值-inf,然后用argmax找到最大的负值:
np.where(arr < 0, arr, -np.inf).argmax()
# 2
Run Code Online (Sandbox Code Playgroud)
类似地用infthen替换非正值argmin以找到最小的正值:
np.where(arr > 0, arr, np.inf).argmin()
# 4
Run Code Online (Sandbox Code Playgroud)