簡體   English   中英

有沒有辦法取多個相同大小的列表的平均值?

[英]Is there a way of taking the average of multiple lists of equal size?

這是在 python 中。

假設我有三個列表:

x = [[1, 2], [2 , 4], [1, 1]]
y = [[3, 4], [6 , 8], [1, 1]]
z = [[5, 6], [10, 12], [1, 1]]

我想獲取列表

avg = [[.. , ..], [.., ..], [.., ..]]

standard_deviation = [[.. , ..], [.., ..], [.., ..]]

例如avg[0,0] = (1 + 3 + 5)/3與其他值相同。

提前致謝。 這將為我節省大量時間。

對於 numpy 二維陣列

a = np.array([[1, 2, 2 , 4, 1, 1],
              [3, 4, 6 , 8, 1, 1],
              [5, 6, 10, 12, 1, 1]])

你可以簡單地做np.mean(a,axis=0)np.std(a,axis=0)

您可以通過執行以下操作輕松a

x, y, z = np.array(x), np.array(y), np.array(z)
x, y, z = np.ndarray.flatten(x), np.ndarray.flatten(y), np.ndarray.flatten(z)
a = np.vstack((x,y,z))
import numpy as np

x = [[1, 2], [2 , 4], [1, 1]]
y = [[3, 4], [6 , 8], [1, 1]]
z = [[5, 6], [10, 12], [1, 1]]

arr = np.dstack([x, y, z])

# mean
arr_mean = arr.mean(axis=-1)
# standard deviation
arr_std = arr.std(axis=-1)

print(f"Mean:\n {arr_mean}\n")
print(f"Std:\n {arr_std}")

它給:

Mean:
 [[3. 4.]
  [6. 8.]
  [1. 1.]]

Std:
 [[1.63299316 1.63299316]
  [3.26598632 3.26598632]
  [0.         0.        ]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM