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