如何将子数组中的值更改为这些值的平均值?

问题描述 投票:0回答:1

我有一个数组:

> a

array([1, 2, 3], [2, 3, 4], [3, 4, 5])

我想将这些值更改为这些值的平均值,因此输出将是:

> a

array([2, 2, 2], [3, 3, 3], [4, 4, 4])

有没有一种不使用 for 循环的快速方法来做到这一点?

谢谢你

python arrays numpy multidimensional-array sub-array
1个回答
0
投票

如果您能够使用

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.]])
© www.soinside.com 2019 - 2024. All rights reserved.