首页 > 解决方案 > 计算矩阵的列均值 - 如何优化?

问题描述

输入:

[
[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 个小时。

标签: pythonmultithreadingalgorithmnumpypython-multithreading

解决方案


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)

推荐阅读