繁体   English   中英

如何获得一维数组和二维数组的平均值?

[英]How to get mean value with 1D array and 2D array?

这是两个列表:list = [[1, 2], [3, 4]] 和 list = [1, 2, 2, 3, 4]

我想计算列表的平均值。 到目前为止,这是我的代码并输出:

 def summary(x):
      mean1 = np.mean(x)

      Dict = {"mean":mean1}
 return Dict

summary([1, 2, 2, 3, 4])
My output is == {'mean': 2.4}

summary([[1, 2], [3, 4]])
My output is == error

我只想知道我应该对我的代码进行什么更改,以便如果我将其作为输入而不仅仅是 1D arrays 2D arrays 也可以工作?

我已经看到我应该插入 (x, axis=1) 但它只适用于 2Darray 而不是再次适用于 1D 数组。

我希望 2D 平均值给我 output: 'mean': [1.5, 3.5]

摘要定义中存在错误,而不是您希望将x作为参数的list

有了这个,它对我来说很好:

import numpy as np
def summary(x):
    mean1 = np.mean(x)

    Dict = {"mean":mean1}
    return Dict

a = summary([1, 2, 2, 3, 4])
print(a)
b = summary([[1, 2], [3, 4]])
print(b)

结果是:

{'mean': 2.4}
{'mean': 2.5}

[更新]

如果您想获得沿特定轴的平均值,可以按以下方式进行。 您必须检查阵列形状,因为您希望它在方向 1 上,这对于一维阵列来说是不存在的。

import numpy as np
def summary(x):
    arr = np.array(x)
    if len(arr.shape) == 2:
        mean1 = np.mean(arr, axis=1)
    else:
        mean1 = np.mean(arr)

    Dict = {"mean":mean1}
    return Dict

a = summary([1, 2, 2, 3, 4])
print(a)
b = summary([[1, 2], [3, 4]])
print(b)

返回

{'mean': 2.4}
{'mean': array([1.5, 3.5])}

尝试这个:

import numpy as np

def summary(x):
      mean1 = np.mean(x)
      Dict = {"mean":mean1}
      return Dict

print(summary([1, 2, 2, 3, 4]))

print(summary([[1, 2], [3, 4]]))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM