在python中查找一列数据的标准偏差

在python中查找一列数据的标准偏差,python,row,multiple-columns,mean,standard-deviation,Python,Row,Multiple Columns,Mean,Standard Deviation,我希望找到第一段代码输出的标准偏差。它产生七个数字的列表,即:[-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,0.040896,0.018690,0.0056206,-9999.0,0.038722,0.018323,-9999.0],[0.03944364,-9999.0,0.037885,-9999.0,-0]] 第二段代码查找列

我希望找到第一段代码输出的标准偏差。它产生七个数字的列表,即:
[-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,0.040896,0.018690,0.0056206,-9999.0,0.038722,0.018323,-9999.0],[0.03944364,-9999.0,0.037885,-9999.0,-0]]

第二段代码查找列的平均值(
['0.040170','0.018057','0.004782','0.000000','0.037378','0.014778','0.000000']


我开始编写第三段代码来查找标准偏差,但F打印为空白。此外,我认为我没有正确编写函数以平均值减去每个正数,如果我正确理解您的问题,您有一个列表列表,其中每个子列表包含多个浮点数,将非常感谢任何帮助

如果要计算数字列表的标准偏差:

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(A):
    positives = [b for b in A if b >= 0]
    E.append((len(positives)) / (len(A))*100)
    if positives:
        return sum(positives) / len(positives)
    else:
        return 0

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

#3 sigma check
def sigma(A):
    positives = [b for b in A if b >= 0]
    if positives:
        F.append((positives - C) / len(A))

print F
如果要计算列表列表的
i
th“列”中所有数字的标准偏差:

import numpy
numpy.std(myList)
如果要排除列中的负数:

import numpy
numpy.std(zip(*myList)[i])

希望这有帮助

如果我正确理解您的问题,您有一个列表列表,其中每个子列表包含多个浮动

如果要计算数字列表的标准偏差:

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(A):
    positives = [b for b in A if b >= 0]
    E.append((len(positives)) / (len(A))*100)
    if positives:
        return sum(positives) / len(positives)
    else:
        return 0

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

#3 sigma check
def sigma(A):
    positives = [b for b in A if b >= 0]
    if positives:
        F.append((positives - C) / len(A))

print F
如果要计算列表列表的
i
th“列”中所有数字的标准偏差:

import numpy
numpy.std(myList)
如果要排除列中的负数:

import numpy
numpy.std(zip(*myList)[i])

希望这有帮助

这可能是一个愚蠢的问题,但是你能解释一下
*myList
的语法,或者给我指出该运算符的正确方向吗?我一直在C++的结尾,实际上这是一个很好的问题。它将列表转换为列表元素的序列。检查out@inspectorG4dget,当我使用此语法时,如何排除列中的负数?@inspectorG4dget我遇到了此错误:
namererror:name'itertools'未定义
@KJo:
import itertools
这可能是一个愚蠢的问题,但您能解释一下
*myList
的语法吗,或者为我指出正确的操作方向吗那个接线员?我一直在C++的结尾,实际上这是一个很好的问题。它将列表转换为列表元素的序列。检查out@inspectorG4dget,当我使用此语法时,如何排除列中的负数?@inspectorG4dget我遇到此错误:
NameError:name'itertools'未定义
@KJo:
导入itertools