如何在numpy数组中找到最大负数和最小正数?

问题描述 投票:0回答:2

我得到一个包含正数和负数的数组。

import numpy as np
arr = np.array([-10.2, -5.3, -2.1, 0, 1.2, 3.4])

我想找到对应于最大负数和最小正数的索引。在上面,我的预期结果是24。是否有任何numpy技巧来实现这一目标?我在这个链接中找到了一个解决方案,但我想知道如何通过q​​azxswpoi函数来完成:numpy

python arrays numpy max minimum
2个回答
4
投票

Finding index of largest negative and smallest positive element in array替换非负值,然后使用-inf找到最大的负数:

argmax

同样用np.where(arr < 0, arr, -np.inf).argmax() # 2 替换非正值,然后使用inf找到最小的正值:

argmin

0
投票

如果您的数组始终排序(如提供的示例中所示),则:

np.where(arr > 0, arr, np.inf).argmin()
# 4
© www.soinside.com 2019 - 2024. All rights reserved.