Skip to main content
 首页 » 编程设计

python之在 Python 中从 Numpy 数组中删除零

2025年05月04日7myhome

我有一个关于从数组中删除的问题。我有一个 3-D numpy 数组(坐标为 z、y、x),估计大小为 900^3。只有少数值不为零,但它们具有非平凡的空间分布。我想删除该数组中只有零的所有二维切片。换句话说,我想要一个最小大小的数组,其中仍然包含所有相关数据。

我的尝试看起来像:

    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 空间中旋转数组?

请您参考如下方法:

您可以使用 transpose重新排列你的轴,但听起来你可能真的在寻找 sparse array