配列からの削除について質問があります。推定 900^3 サイズの 3D numpy 配列 (座標は z、y、x) があります。ゼロ以外の値はごくわずかですが、それらの空間分布は自明ではありません。その配列内のゼロしかない 2-D スライスをすべて削除したいと考えています。言い換えれば、関連するすべてのデータがまだ含まれている最小サイズの配列が必要です。
私の試みは次のようになります:
while np.all(a[0]==0):
a=np.delete(a,0,0)
while np.all(a[a.shape[0]-1]==0) and a.shape[0]>1:
a=np.delete(a,-1,0)
z方向で機能するようです。他の 2 つの方向で同じことを行うにはどうすればよいですか? そして、それをより良くする別の方法はありますか?
別のアイデアは
tmp=np.delete(tmp,np.all(tmp==0,axis=1),1)
しかし、それは最初からしか機能しないようで、最後にゼロを除外します。
3D空間で配列を回転させることは可能ですか?