我有一个名为
目前,我的做法是:
它能工作,但似乎我没有利用numpy的魔力(和速度)。有更好的方法吗?我看过numpy.vectorize和numpy.apply_along_axis,但对于一个2D数组的函数都不起作用。编辑:我正在对24x24图像块进行增强回归,所以我的AxNxM大约是1000x24x24。我上面称之为foo的东西将一个特征应用于一个块(因此,计算上并不是非常复杂)。
foo
的函数,它接受一个NxM的numpy数组作为参数并返回一个标量值。 我有一个AxNxM的numpy数组data
,我想对其进行映射foo
,以便给我一个长度为A的numpy数组作为结果。目前,我的做法是:
result = numpy.array([foo(x) for x in data])
它能工作,但似乎我没有利用numpy的魔力(和速度)。有更好的方法吗?我看过numpy.vectorize和numpy.apply_along_axis,但对于一个2D数组的函数都不起作用。编辑:我正在对24x24图像块进行增强回归,所以我的AxNxM大约是1000x24x24。我上面称之为foo的东西将一个特征应用于一个块(因此,计算上并不是非常复杂)。
foo
,使其能够接受任意维度的numpy数组,并将其计算应用于最后两个轴。但我们必须查看foo
的编码以提出具体建议。 - unutbudata
保持不变,重新编写foo
以接受索引参数,然后对其进行向量化并映射到arange(len(x))
上,这样做是否有意义? - perimosocordiae