在列表列表中查找每个列表的标准偏差

2024-09-30 18:16:27 发布

您现在位置:Python中文网/ 问答频道 /正文

如何修改此代码:

def SD(numList):
    cntN=len(numList)
    sumN=0
    for i in numList:
        sumN+=i
    avgVal=float(sumN)/float(cntN)
    sumVar=0.0
    for i in range(cntN):
        sumVar+=float((numList[i]-avgVal)**2)
    return ((float(sumVar)/float((cntN-1)))**0.5)

如果numList是一个列表列表,并且我想找到每一行的标准偏差,那么它就可以工作了? 感谢任何帮助


Tags: 代码in列表forlenreturndefrange
2条回答

与其修改代码,不如更容易理解列表:

[SD(nl) for nl in numLists]

另外,您的SD函数可以使用列表理解简化为:

^{pr2}$

你还有很多多余的Float

def SD(numLists):
    def singleSD(numList):
      cntN=len(numList)
      sumN=0
      for i in numList:
          sumN+=i
      avgVal=float(sumN)/float(cntN)
      sumVar=0.0
      for i in range(cntN):
          sumVar+=float((numList[i]-avgVal)**2)
      return ((float(sumVar)/float((cntN-1)))**0.5)
    return [singleSD(l) for l in numLists]

相关问题 更多 >