码迷,mamicode.com
首页 > 编程语言 > 详细

python如何二删除二维或者三维数组/列表中某维的空元素

时间:2019-03-24 15:02:38      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:[]   出现   pre   二维   数据预处理   括号   class   python   处理   

如题,个人在使用python进行数据预处理过程中出现的问题,抽象成删除三维列表中某维为空的问题。

 

一.首先来看一下三维数组/列表的结构

仔细看下图就会很清楚了:

轴0即是去除第一个外括号后第一层(我把它称做第一维)有四大块;

对轴1则是对每一块来说,去掉大块的括号后的四小横条(我把它称作第二维);

对轴2则是对每一条来说,去掉小条的括号后的每一个数(从外往里数第三层括号,我就叫做第三维)

     技术图片

 

二.代码

1.删除二维数组中为空的元素则比较简单:

oldlist=[[1, 1, 1, 1, 1],  [1, 1, 1, 1, 2],  [2, 2, 2, 2, 4, 4], [ 8, 8, 8, 8, 8],  [16, 16], [], [] , []]
newlist=[x for x in oldlist if x] #删除空列表[]
print(newlist)

结果如下:

[[1, 1, 1, 1, 1],  [1, 1, 1, 1, 2],  [2, 2, 2, 2, 4, 4], [ 8, 8, 8, 8, 8],  [16, 16]]

 

2.(延伸)对三维数组

代码中我们用的三维数组如下:

[ [[1, 1, 1, 1, 1], [2, 2, 2, 2, 4, 4], [8, 8, 8, 8, 8], [16, 16], [], []],
  [[111], [333], [444]], 
  [], 
  []  ]

其中第一维和第二维都设置了为空的元素

 

删除三维列表中第二维为空的元素,代码如下:

#1.删除三维列表中第二维为空的元素
oldlist=[[[1, 1, 1, 1, 1],  [2, 2, 2, 2, 4, 4], [ 8, 8, 8, 8, 8],  [16, 16], [], []],  [[111], [333], [444]],[],[]]
new1=[]
new2=[]
def dellist(oldlist):
    for sam in oldlist:
        new1 = []
        for x in sam:
            if x:
                new1.append(x)
        new2.append(new1)
    return new2


print(dellist(oldlist))

结果如下:

[ [[1, 1, 1, 1, 1], [2, 2, 2, 2, 4, 4], [8, 8, 8, 8, 8], [16, 16]], [[111], [333], [444]], [], []]

 

若要想把第一维也为空的元素耶删除,加上一行即可:

oldlist=[[[1, 1, 1, 1, 1],  [2, 2, 2, 2, 4, 4], [ 8, 8, 8, 8, 8],  [16, 16], [], []],  [[111],[333],[444]],[],[]]
new1=[]
new2=[]
def dellist(oldlist):
    for sam in oldlist:
        if sam:
            new1 = []
            for x in sam:
                if x:
                    new1.append(x)
            new2.append(new1)
    return new2

print(dellist(oldlist))

结果如下:

[  [[1, 1, 1, 1, 1], [2, 2, 2, 2, 4, 4], [8, 8, 8, 8, 8], [16, 16]], 
   [[111], [333], [444]]  ]

 

python如何二删除二维或者三维数组/列表中某维的空元素

标签:[]   出现   pre   二维   数据预处理   括号   class   python   处理   

原文地址:https://www.cnblogs.com/yh-blog/p/10588208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!