数组平均迭代

Array mean iteration

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

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

当此代码为 运行 时,您将得到一个形状为 (4,3) 的数组。我想要的是找到并返回每一行的平均值。 返回的应该是一个 ([[6],[8],[8],[9]]) 的数组,具有相同的行和自然为 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.]])

使用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.]]