Numpy:如何获取属性为true的最小索引

2024-03-29 12:33:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个一维的numpy数组。我想得到属性为真的最大和最小索引

比如说,

A = np.array([0, 3, 2, 4, 3, 6, 1, 0])

我想知道A的值大于或等于4的最小索引

我能行

i = 0
while A[i] < 4:
    i += 1
print("smallest index", i)

i = -1
while A[i] <4:
    i -= 1
print("largest index", len(A)+i)

有更好的方法吗


正如this answer中所建议的

np.argmax(A>=4)

返回3,这确实是最小的索引。但这并没有给我最大的指数


Tags: 方法answernumpyindexlen属性np数组
1条回答
网友
1楼 · 发布于 2024-03-29 12:33:20

你可以试试这样的东西。根据评论,如果A

A = np.array([0, 3, 2, 4, 3, 6, 1, 4])

idx_values = np.where(A >= 4)[0]
min_idx, max_idx = idx_values[[0, -1]]

print(idx_values)
# array([3, 5, 7], dtype=int64)

idx_values返回满足条件的所有索引值。然后可以访问最小和最大索引位置

print(min_idx, max_idx)
# (3, 7)

相关问题 更多 >