gpt4 book ai didi

python - 有没有办法从 python 数组中删除相似的(数字)元素

转载 作者:行者123 更新时间:2023-11-30 21:57:48 24 4
gpt4 key购买 nike

我有一个函数可以生成这样的数组:

[ 14  48  81 111 112 113 114 148 179 213 247 279 311 313 314 344 345 346]

对应于曲线与 x 轴交叉的数据值。由于数据不完美,它会产生误报,其中我的输出数组的元素彼此非常接近,例如[111112113114]。我需要从该数组中删除误报,但仍保留误报显示位置周围的初始正值。基本上我需要我的函数来生成和数组更像

[ 14  48  81 112 148 179 213 247 279 313 345]

不完美数据的误报已被删除。

最佳答案

这是一种可能的方法:

arr = [14, 48, 81, 111, 112, 113, 114, 148, 179, 213, 247, 279, 311, 313, 314, 344, 345, 346]

def filter_arr(arr, offset):
filtered_nums = set()
for num in sorted(arr):
# Check if there are any "similar" numbers already found
if any(num+x in filtered_nums for x in range(-offset, offset+1)):
continue
else:
filtered_nums.add(num)
return list(sorted(filtered_nums))

然后您可以使用您认为最有意义的任何偏移量应用过滤。

filter_arr(arr, offset=5)  
Output: [14, 48, 81, 111, 148, 179, 213, 247, 279, 311, 344]

关于python - 有没有办法从 python 数组中删除相似的(数字)元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55141743/

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