找到二维数组的每一行的中值

时间:2015-11-11 19:42:35

标签: python arrays python-2.7 multidimensional-array median

我试图找到二维数组的每一行的中位数。这是我到目前为止所尝试过的,但我无法让它发挥作用。任何帮助将不胜感激。

def median_rows(list):            
    for lineindex in range(len(Matrix)):
        sorted(Matrix[lineindex])

        mid_upper = ((len(Matrix[lineindex]))/2
        mid_lower = ((len(Matrix[lineindex])+1)/2
        if len(Matrix[lineindex])%2 == 0:
            #have to take avg of middle two
            median = (Matrix[mid_lower] + Matrix[mid_upper])/2.0
            print "The median is %f" %median
       else:
            median = srtd[mid]  
            print "The median is %d" %median


median_rows(Matrix)

3 个答案:

答案 0 :(得分:1)

如果您想简单易懂,请使用numpy' median

/etc/init.d/youtrack

答案 1 :(得分:0)

首先,明确的变量命名错误:Matrix未定义。您可能意味着list,或者您打算将函数参数命名为Matrix。因为有Python数据类型list,所以btw list不是一个好的变量名。另外,Matrix也不是一个好名字,因为将变量名称设为小写是一种很好的做法。此外,srtd未定义。

更正命名错误后,下一个问题是sorted(xyz)不会修改xyz,但会返回xyz的已排序副本。所以你需要将它分配给某些东西。好吧,不要将它分配回Matrix[lineindex],因为这样功能会产生改变传递给它的输入矩阵的不良副作用。

答案 2 :(得分:0)

这应该可以帮助你。正如@Rishi所说,有很多变量名称问题。

liftIO $ setSGR [SetColor Foreground Vivid Green]
putNormal "[\175] Compiling "
liftIO $ setSGR [SetColor Foreground Vivid Yellow]
putNormal $ c ++ "\n"
liftIO $ setSGR [Reset]