【发布时间】:2012-05-09 17:41:56
【问题描述】:
我有一个 Numpy 3 轴数组,其元素是 3 维的。我想对它们进行平均并返回相同形状的数组。正常的平均函数去掉3维,用平均值代替(如预期的那样):
a = np.array([[[0.1, 0.2, 0.3], [0.2, 0.3, 0.4]],
[[0.4, 0.4, 0.4], [0.7, 0.6, 0.8]]], np.float32)
b = np.average(a, axis=2)
# b = [[0.2, 0.3],
# [0.4, 0.7]]
需要结果:
# b = [[[0.2, 0.2, 0.2], [0.3, 0.3, 0.3]],
# [[0.4, 0.4, 0.4], [0.7, 0.7, 0.7]]]
你能优雅地做到这一点,还是我只需要在 Python 中迭代数组(与强大的 Numpy 函数相比会慢很多)。
您能否将 np.mean 函数的 Dtype 参数设置为一维数组?
谢谢。
【问题讨论】:
-
非常喜欢你想在问题中看到的内容。
-
在大多数情况下我可以想象,广播不需要 3d 数组就可以做到。
标签: python multidimensional-array numpy shape average