使用して、非ゼロの軸を保つためには、私は、次の3次元配列を持っていると言う:L[0,:]
ではゼロ列は常にL[1,:]
にゼロの列が対応することで一致しているエレガントインデックス3次元配列への道とnumpyの
L=np.arange(18).reshape((2,3,3))
L[:,:,1] = 0; L[:,[0,1],:] = 0
In []: L
Out[]:
array([[[ 0, 0, 0],
[ 0, 0, 0],
[ 6, 0, 8]],
[[ 0, 0, 0],
[ 0, 0, 0],
[15, 0, 17]]])
。
私は今、軸に沿って合計が0(行ゼロのを無視して等しい途中列を削除したい。私の現在の不器用なアプローチが
ことの少ない回り道で何l=np.nonzero(L.sum(axis=1))[1]
In []: L[:,:,l[:len(l)/2]]
Out[]:
array([[[ 0, 0],
[ 0, 0],
[ 6, 8]],
[[ 0, 0],
[ 0, 0],
[15, 17]]])
です?この
最初の2Dスライスの最初のCOLがすべてゼロであればどのような。出力は変わるでしょうか? – Divakar
@Divakar混乱については申し訳ありません。あなたの例の出力は技術的に変更すべきではありませんが、私が扱っている配列の種類はそうではありません。[0,0,6]の最初の列がすべて0に設定されている場合、列[0,0,15]のすべての値も0になります。 –
私は参照してください。だから、掲載された解答に似ています: 'L [...、L.sum((0,1))!= 0]'。 – Divakar