gpt4 book ai didi

python - Numpy 索引第一个 bool 值

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:52 25 4
gpt4 key购买 nike

在 bool 数组中,我试图获取第一个 True 的列索引。 argmax 至少适用于一个 True,但可以理解 max(False) 为 0。我想知道最好的方法是什么,给定一个非常大的数组。

name = np.array(['a', 'b', 'c', 'd'])
boolarr = np.array([[True, False, False, True],
[False, False, True, True],
[False, False, False, False]])
colidx = np.argmax(boolarr,axis=1)
print(name[colidx]) #result: ['a', 'c', 'a'] desired: ['a', 'c', None]

最佳答案

您无法更改 argmax 的行为,因为所有 False 的行的最大值 0。但是,您可以使用 any 来确定包含所有 False 的行,并使用 np.where 来屏蔽你的结果:

out = name[colidx]
np.where(boolarr.any(1), out, None)

array(['a', 'c', None], dtype=object)

关于python - Numpy 索引第一个 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53016011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com