簡體   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