数组平均迭代
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.]]
我的问题与数组迭代有关,但有点复杂。你看我有一个形状为 (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.]]