gpt4 book ai didi

python - 对数组中小于某个值的值求和

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:20 24 4
gpt4 key购买 nike

我有一个包含数字和零的 3x3 数组。我需要计算下一个点 ls[i+1] 和它之前的点 ls[i] 之间的绝对差值。这是我的列表的示例:

ls=[(98.6,99,0),(98.2,98.4,97.1),(97.6,0,98.3)]

零是错误数据。我需要一个循环:

  1. 取每一行中 future 数字和当前数字的绝对差值,
  2. 使大于最大差值的差值为零(max diff=1.9 在这种情况下,假设零是错误数据),
  3. 将每一行的差异加在一起,这样我就得到了一个总和列表。

就目前而言,最终结果将是:

result=[(0.4,99),(0.2,1.3),(97.6,98.3)]

鉴于零不是好的数据,大于 1.9 的差异不是准确的结果。

最佳答案

如果您愿意将给定最大差异值的差异设置为 0,或许可以在第二步中实现该逻辑:

ls=[(98.6,99,0),(98.2,98.4,97.1),(97.6,0,98.3)]

unfiltered = [tuple(abs(x1 - x2) for x1, x2 in zip(tup, tup[1:]))
for tup in ls]
max_diff = 1.9
results = [tuple((x if x < max_diff else 0) for x in tup)
for tup in unfiltered]

如果您的对象不是 native python 列表/元组但支持索引,最好这样做:

ls=[(98.6,99,0),(98.2,98.4,97.1),(97.6,0,98.3)]

unfiltered = [tuple(abs(item[i] - item[i+1]) for i in range(len(item)-1))
for item in ls]
max_diff = 1.9
results = [tuple((x if x < max_diff else 0) for x in tup)
for tup in unfiltered]

关于python - 对数组中小于某个值的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34214326/

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