是否有一个numpy函数可以将一个数组沿轴与另一个数组中的元素分开?例如,假设我有一个具有形状(l,m,n)的数组a和具有形状(m,n)的数组b。我在找的东西相当于:numpy沿轴线划分
>>> a = np.random.randn(4,3)
array([[ 1.03116167, -0.60862215, -0.29191449],
[-1.27040355, 1.9943905 , 1.13515384],
[-0.47916874, 0.05495749, -0.58450632],
[ 2.08792161, -1.35591814, -0.9900364 ]])
>>> np.apply_along_axis(np.linalg.norm,1,a)
array([ 1.23244853, 2.62299312, 0.75780647, 2.67919815])
>>> c = divide_along_axis(a,np.apply_along_axis(np.linalg.norm,1,a),0)
>>> np.apply_along_axis(np.linalg.norm,1,c)
array([ 1., 1., 1., 1.])
不,你没有。该方法例如以我给出的二维数组为例失败。事实证明,对于我给你的例子可以做c = a/np.apply_along_axis(np.linalg.norm,1,a)[:, np.newaxis],但是我正在寻找一些更通用的函数divide_along_axis()我在问题中定义。 – user545424
转座如何(请参阅编辑答案)?或者,您可以先定义“divide_along_axis”,然后进行分割,然后转换回来。 – Owen
只需为您的1d阵列添加一个新轴。 – tillsten