[英]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.