我有一个数组:
> a
array([1, 2, 3], [2, 3, 4], [3, 4, 5])
我想将这些值更改为这些值的平均值,因此输出将是:
> a
array([2, 2, 2], [3, 3, 3], [4, 4, 4])
有没有一种不使用 for 循环的快速方法来做到这一点?
谢谢你
如果您能够使用
numpy
模块,则 broadcasting 函数对此很有用(尽管它们也通过高度优化的循环来做到这一点)。
import numpy as np
a = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]])
np.broadcast_to(a.mean(axis=1), a.shape).T
输出:
array([[2., 2., 2.],
[3., 3., 3.],
[4., 4., 4.]])