gpt4 book ai didi

python - 如何从数组中提取感兴趣的数字,同时将其与不同的数组进行比较?

转载 作者:行者123 更新时间:2023-12-02 02:38:14 25 4
gpt4 key购买 nike

我有以下两个数组:

array([154, 390, 635, 881], dtype=int64)

array([ 19, 25, 55, 95, 96, 100, 104, 125, 177, 191, 193, 209, 211,
215, 217, 220, 260, 262, 264, 268, 299, 371, 418, 454, 457, 460,
464, 467, 474, 476, 502, 504, 506, 511, 544, 615, 661, 707, 746,
748, 752, 757, 787, 853, 855, 856, 906, 945, 989, 998], dtype=int64)

我想要一个代码来创建第三个数组或列表,其中包含第二个数组中的值,这些值是第一个大于第一个数组的值的数字,即 177、418、661 和 906。

我尝试了以下代码:

for i in range(len(xi)):
newlist =[]
for j in range(len(peaks)):
if xi[i] > peaks[j] : newlist.append(xi[i])
j=j+1

但答案是[998, 998, 998, 998],这是第二个数组中最大的数字

我应该改变什么才能获得所需的值?

谢谢

最佳答案

我们可以使用广播来比较两个数组,并沿第二个轴获取 argmax 来查找第一个 True 值的索引。然后使用生成的整数索引数组索引 b:

b[(b > a[:,None]).argmax(1)]
# array([177, 418, 661, 906])

设置-

a = np.array([154, 390, 635, 881])

b = np.array([ 19, 25, 55, 95, 96, 100, 104, 125, 177, 191, 193, 209, 211,
215, 217, 220, 260, 262, 264, 268, 299, 371, 418, 454, 457, 460,
464, 467, 474, 476, 502, 504, 506, 511, 544, 615, 661, 707, 746,
748, 752, 757, 787, 853, 855, 856, 906, 945, 989, 998])

关于python - 如何从数组中提取感兴趣的数字,同时将其与不同的数组进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64007401/

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