【发布时间】:2018-12-12 19:01:13
【问题描述】:
假设我有以下 numpy 数组
>>> import numpy as np
>>> arr = np.array([[[1,2,3,4], [5,6,7,8]], [[1,2,3,4], [5,6,7,8]]])
>>> arr
array([[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[1, 2, 3, 4],
[5, 6, 7, 8]]])
我想将一个函数映射到数组的子部分,例如:
flip_sign = lambda x: x*(-1)
在我的示例中,我只想将此函数应用于第二行,从而产生:
array([[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[-1, -2, -3, -4],
[-5, -6, -7, -8]]])
本质上我想使用类似的东西
np.apply_along_axis(flip_sign, 1, arr)
但指定沿轴 0 的索引(或索引范围)应应用此函数。
当然,我可以将数组拆分为子集,然后将函数应用于子集并再次连接子集。
但是有没有内置的(numpy)函数可以轻松做到这一点?
【问题讨论】:
标签: python numpy numpy-ndarray