我有一个关于从数组中删除的问题。我有一个三维numpy数组(坐标是z,y,x),估计大小为900^3。只有少数值非零,但它们具有非平凡的空间分布。我想删除该数组中只有零的所有2D切片。换句话说,我想要一个最小大小的数组,其中仍然包含所有相关数据。从Python中的Numpy数组中删除零
我的尝试是这样的:
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方向努力。我怎么能在另外两个方向做同样的事情?是否有另一种更好的方法?
另一个想法是
tmp=np.delete(tmp,np.all(tmp==0,axis=1),1)
而是一个似乎只从一开始工作,省去了零结尾。
是否有可能在3D空间中旋转阵列?
如果你想在3d空间中旋转数组,你可以使用numpy.roll。 – ebarr