gpt4 book ai didi

python - 第一次出现大于 numpy 数组中给定值的值

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:21 26 4
gpt4 key购买 nike

我有一个二维数组,例如:

r1= np.array([[1,2,3,4],[2,3,4,5],[3,4,5,6]])

我需要为每一行查找第一次出现的大于默认值的值。我正在使用这个:

default=2
ans= np.argmax(r1>default,1)

问题是,如果有一个大于默认值的值,它会起作用,但如果找不到这样的值,则返回零。所以它在两种情况下返回零 -1) 每行第一个值大于默认值2) 每个值都不大于默认值

#simple case:
In[31]: np.argmax(r1>2,1)
Out[31]: array([2, 1, 0], dtype=int64)

#trouble case- both returning zeros
In[32]: np.argmax(r1>7,1)
Out[32]: array([0, 0, 0], dtype=int64)
In[33]: np.argmax(r1>0.5,1)
Out[33]: array([0, 0, 0], dtype=int64)

我目前正在使用它来解决这个问题:

In[37]: np.any(r1>7,1) + np.argmax(r1>7,1)-1
Out[37]: array([-1, -1, -1], dtype=int64)
In[38]: np.any(r1>0.5,1) + np.argmax(r1>0.5,1)-1
Out[38]: array([0, 0, 0], dtype=int64)

还有其他建议可以简化此操作吗?

最佳答案

表单的嵌套列表(二维数组)

l = [[n1,n2,n3],[m1,m2,m3]...]

可以使用遍历每个嵌套列表中大于给定数字“d”的第一个值

[[i for i in x if i>d][0] for x in l]

关于python - 第一次出现大于 numpy 数组中给定值的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40372470/

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