【问题标题】:Averaging numpy array over for loop?在 for 循环上平均 numpy 数组?
【发布时间】:2023-01-09 19:53:03
【问题描述】:

我在 for 循环的每次迭代中计算一个 numpy 数组。我如何平均呢?

例如:

for i in range(5):
    array_that_I_calculate = some_calculation(x,y,z)

【问题讨论】:

  • 阵列的形状是什么,你能给一些样品吗?
  • 每个array_that_I_calculate 是 2000 x 1
  • 您的预期输出形状是什么?
  • 每个元素的平均值也是 2000 x 1
  • 哦,只需将它们附加到列表中,然后在该数组列表的 axis 0 上使用 np.average。我的答案中的详细信息

标签: python numpy


【解决方案1】:

尝试这个 -

  1. 在每次迭代时将 array_that_I_calculate 附加到 list_of_arrays
  2. 循环结束后,取list_of_arraysnp.average()超过axis=0
    import numpy as np
    
    
    ##### IGNORE #####
    #dummy function that returns (2000,1) array
    
    def some_calculation(x=None,y=None,z=None)
        return np.random.random((2000,1))
    
    
    ##### SOLUTION #####
    
    list_of_arrays = []                                  #<-----
    
    for i in range(5):
        array_that_I_calculate = some_calculation(x,y,z)
        list_of_arrays.append(array_that_I_calculate)    #<-----
        
    averaged_array = np.average(list_of_arrays, axis=0)  #<-----
    print(averaged_array.shape)
    
    (2000,1)
    

【讨论】:

  • 如果这解决了您的问题,请告诉我。如果有,请随时标记答案。谢谢!
猜你喜欢
  • 2018-05-09
  • 1970-01-01
  • 1970-01-01
  • 2016-12-22
  • 1970-01-01
  • 1970-01-01
  • 2019-09-11
  • 1970-01-01
相关资源
最近更新 更多