gpt4 book ai didi

python - 在取平均值之前筛选出负数

转载 作者:行者123 更新时间:2023-12-01 05:40:41 25 4
gpt4 key购买 nike

我有这个程序来读取数据,对三行进行平均,然后对下列进行平均,到目前为止,它做得很好。然而,我现在试图返回并让它删除负数据点,但我遇到了一些麻烦:

from __future__ import division
import csv
v = open("Pt_2_Test_Data.csv", 'wb') #created file to write output to
A =[]
B = []
with open("test2.xls") as w:
w.next() # skip over header row
for row in w:
(date, time, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t,
u, LZA, SZA, LAM) = row.split("\t") # split columns into fields

A.append([(float(a) + float(b) + float(c))/3,
(float(d) + float(e) + float(f))/3,
(float(g) + float(h) + float(i))/3,
(float(j) + float(k) + float(l))/3,
(float(m) + float(n) + float(o))/3,
(float(p) + float(q) + float(r))/3,
(float(s) + float(t) + float(u))/3])

def mean(B):
return sum(B) / len(B)
for x in A:
if x > 0:
B.append(x)

print B
C = map(mean, zip(*B))
print C

v.close()

(我还不担心将数据写入文件,只是在获取最终平均值之前消除负数。)

最佳答案

我不确定这就是你的意思,但你可以像这样改变你的平均函数:

def mean(B):
positives = [b for b in B if b >= 0]
return sum(positives) / len(positives)

这将为您提供 B 的非负成员的平均值。这是您想要的吗?

一般来说,这种推导式是获取列表非负成员的一种方法。另一种对我来说更有意义的方法是

filter (lambda i: i >=0, some_list)

不过,这似乎正在经历一些弃用。

关于python - 在取平均值之前筛选出负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622990/

25 4 0
文章推荐: java - Seam - IdentityManager.isUserEnabled() 的问题
文章推荐: xpath:破译这个 xpath?
文章推荐: jquery - 如何结合使用 MaterializeCSS 和 AngularJS 来初始化