【发布时间】:2016-05-11 18:09:39
【问题描述】:
给定一些函数f 接受1D 数组并给出2D 数组,是否可以有效地将其应用于NxM 数组A 的每一行?
更具体地说,我想为NxM 数组A 的每一行应用np.triu,然后连接所有结果。我可以通过
B = np.dstack(map(np.triu, A))
给出MxMxN 矩阵。但是,对于较大的 N,这不是很有效。不幸的是,这里不能使用函数 np.apply_along_axis,因为 f 改变了维度。
了解 NumPy 在高效广播方面的强大功能后,我几乎可以肯定存在更好的解决方案来解决我的问题。
【问题讨论】:
-
apply_along_axis使用 Python 迭代。它只是一个包装器,可以更轻松地沿多维数组的一个轴进行迭代(对于某些程序员而言)。
标签: arrays numpy multidimensional-array array-broadcasting