【发布时间】:2015-10-12 04:05:12
【问题描述】:
有没有办法对以下数组计算进行矢量化(即不使用 for 循环):
for i in range(numCells):
z[i] = ((i_mask == i)*s_image).sum()/pixel_counts[i]
s_image 是存储为二维 ndarray 的图像(为简单起见,我在此处删除了颜色维度)。 i_mask 也是一个与 s_image 大小相同的二维数组,但它包含整数,这些整数是长度为 numCells 的“单元”列表的索引。结果 z 是长度为 numCells 的一维数组。计算的目的是将掩码包含相同索引的所有像素值相加,并将结果放入 z 向量中。 (pixel_counts 也是长度为 numCells 的一维数组)。
【问题讨论】:
-
也许我创建了一个数组或数据框,其中每个像素都有一行包含单元格索引值和颜色设置。然后对具有相同索引的所有行求和(如数据透视表)。这会更快吗?
标签: python-2.7 multidimensional-array vectorization