Numpy(Pandas)删除全为零的列的方法


Posted in Python onSeptember 11, 2020

在处理numpy数组,有这个需求,故写下此文:

使用np.argwhere和np.all来查找索引。要使用np.delete删除它们。

示例1

import numpy as np
a = np.array([[1, 2, 0, 3, 0],
       [4, 5, 0, 6, 0],
       [7, 8, 0, 9, 0]])

idx = np.argwhere(np.all(a[..., :] == 0, axis=0))
a2 = np.delete(a, idx, axis=1)

print(a2)

"""
[[1 2 3]
 [4 5 6]
 [7 8 9]]
"""

示例2

import numpy as np

array1 = np.array([[1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0],
          [0,1,1,0,0,1,1,1,1,0,0,0,1,0,1,0,0,1,1,1],
          [0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,1,1],
          [0,1,1,0,0,1,1,1,1,0,1,1,1,0,0,1,0,0,1,1],
          [0,0,1,0,0,1,1,1,0,1,0,1,1,0,1,1,0,0,1,0],
          [1,0,1,0,0,0,1,0,0,1,1,1,1,0,1,1,0,0,1,0],
          [1,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,1],
          [0,1,0,0,1,0,0,0,1,0,1,1,1,0,1,0,0,1,1,0],
          [0,1,0,0,1,0,0,1,1,0,1,1,1,0,0,1,0,1,0,0],
          [1,0,0,0,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,0]])

mask = (array1 == 0).all(0)
column_indices = np.where(mask)[0]
array1 = array1[:,~mask]

print("raw array", array1.shape)  # raw array (10, 20)
print("after array",array1.shape) # after array (10, 17)
print("=====x=====\n",array1)

其它查看:https://moonbooks.org/Articles/How-to-remove-array-rows-that-contain-only-0-in-python/

pandas 删除全零列

from pandas import DataFrame

df1=DataFrame(np.arange(16).reshape((4,4)),index=['a','b','c','d'],columns=['one','two','three','four'])   # 创建一个dataframe
df1.loc['e'] = 0          # 优雅地增加一行全0
df1.ix[(df1==0).all(axis=1), :]  # 找到它
df1.ix[~(df1==0).all(axis=1), :]  # 删了它

到此这篇关于Numpy(Pandas)删除全为零的列的方法的文章就介绍到这了,更多相关Numpy删除全为零的列内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用Python的线程来解决生产者消费问题的示例
Apr 02 Python
python操作ie登陆土豆网的方法
May 09 Python
Python编程中字符串和列表的基本知识讲解
Oct 14 Python
python绘制简单折线图代码示例
Dec 19 Python
手把手教你用python抢票回家过年(代码简单)
Jan 21 Python
python+selenium打印当前页面的titl和url方法
Jun 22 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 Python
python基于event实现线程间通信控制
Jan 13 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
详解Python中import机制
Sep 11 #Python
python使用隐式循环快速求和的实现示例
Sep 11 #Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 #Python
降低python版本的操作方法
Sep 11 #Python
Django crontab定时任务模块操作方法解析
Sep 10 #Python
Django日志及中间件模块应用案例
Sep 10 #Python
Django nginx配置实现过程详解
Sep 10 #Python
You might like
那些年一起学习的PHP(三)
2012/03/22 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
模拟多级复选框效果的jquery代码
2013/08/13 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
jQuery中prevUntil()方法用法实例
2015/01/08 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
手把手教你python实现SVM算法
2017/12/27 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
Python3 集合set入门基础
2020/02/10 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
电大自我鉴定范文
2013/10/01 职场文书
教师师德反思材料
2014/02/15 职场文书
活动总结怎么写
2014/04/28 职场文书
企业安全生产承诺书
2014/05/22 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
党员转正大会主持词
2015/07/02 职场文书
国庆节新闻稿
2015/07/17 职场文书
对Keras自带Loss Function的深入研究
2021/05/25 Python