是否有一個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