计算矩阵的列平均值如何优化?

2024-04-19 19:46:21 发布

您现在位置:Python中文网/ 问答频道 /正文

输入:

[
[1,2,3,4,5],
[5,4,3,2,1],
[3,3,3,3,3]
]

输出:

[3,3,3,3,3]

暴力解决方案:

def calculate_col_mean(matrix):
   mean = []
   num_row = len(matrix)
   num_col = len(matrix[0])
   result = [0] * num_col
   for i in range(num_row):
      for j in range(num_col):
          result[j] += matrix[i][j]

   for i in range(num_col):
       result[i] = result[i] / num_row

   return result

这适用于小型数据集。想象一下,如果我们的数据集真的很大(1GB++),我如何优化它?穿线?我该怎么做呢

PS:使用蛮力方法在1GB数据上运行大约需要2个多小时


Tags: 数据inforlendefrangecolresult
2条回答
import numpy as np
a = np.array([[1,2,3,4,5],[5,4,3,2,1],[3,3,3,3,3]])
column_mean = a.mean(axis=0)

强烈建议使用NumPy进行类似的操作

转到命令行并激活python环境

pip install numpy

在命令行或使用Jupyter笔记本打开Python(首选)

import numpy as np
your_array = np.array([
[1,2,3,4,5],
[5,4,3,2,1],
[3,3,3,3,3]
])

平均值(#)中的0表示希望对其执行平均值的轴

column_averages = your_array.mean(0)

print(column_averages)
[3,3,3,3,3]

相关问题 更多 >