【问题标题】:Array mean iteration数组平均迭代
【发布时间】:2022-01-16 14:20:33
【问题描述】:

我的问题与数组迭代有关,但有点复杂。你看我有一个形状为 (4, 50) 的数组。我想要做的是找到数组的平均值。我将简单解释一下我的意思

A = np.array([[10,5,3],[12,6,6],[9,8,7],[20,3,4]])

运行此代码时,您会得到一个形状为 (4,3) 的数组。我想要的是找到并返回每一行的平均值。 返回的应该是 ([[6],[8],[8],[9]]) 的数组,具有相同的行,自然是 1 列。

请解释其背后的代码和思考过程。非常感谢。

【问题讨论】:

  • 这里没有问题
  • 瞧!所有代码解释

标签: python arrays iteration


【解决方案1】:

使用 np.mean 和列表推导到一个新数组中:

A = np.array([[10,5,3],[12,6,6], [9,8,7],[20,3,4]])

# Use .reshape() to get 4 rows by 1 column.
new_A = np.array([np.mean(row) for row in A]).reshape(-1, 1)

输出:

array([[6.], [8.], [8.], [9.]])

【讨论】:

    【解决方案2】:

    使用numpy.mean 函数。参数axis=1 表示将计算逐行平均值。参数keepdims=True表示保留原始数组维度。

    import numpy as np
    
    A = np.array([[10,5,3],[12,6,6],[9,8,7],[20,3,4]])
    
    B = np.mean(A, axis=1, keepdims=True)
    
    print(B)
    # Output:
    # [[6.]
    #  [8.]
    #  [8.]
    #  [9.]]
    

    【讨论】:

      猜你喜欢
      • 2016-06-30
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2019-02-12
      • 2016-02-07
      • 2014-04-01
      相关资源
      最近更新 更多