【发布时间】:2015-08-03 10:48:14
【问题描述】:
我有一个非常大的掩码 NumPy 数组 (originalArray),其中包含许多行和两列。我想取originalArray 中每两行的平均值并构建一个newArray,其中每一行是originalArray 中两行的平均值(所以newArray 的行数是originalArray 的一半)。这应该是一件简单的事情,但下面的脚本非常慢。社区的任何建议将不胜感激。
newList = []
for i in range(0, originalArray.shape[0], 2):
r = originalArray[i:i+2,:].mean(axis=0)
newList.append(r)
newArray = np.asarray(newList)
必须有更优雅的方式来做到这一点。非常感谢!
【问题讨论】:
-
您想将一个函数应用于
numpy数组的非重叠windows。以下是一些 SO 链接:Using strides for an efficient moving average filter、Python - vectorizing a sliding window - 一些答案看起来很相关,Divide an image into 5x5 blocks in python and compute histogram for each block、Elements arrangement in a numpy array -extract_patches答案会起作用。