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功能键的读取方法
May 28 Python
python简单实现操作Mysql数据库
Jan 29 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
Apr 27 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
numpy向空的二维数组中添加元素的方法
Nov 01 Python
django解决跨域请求的问题
Nov 11 Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
如何使用Python破解ZIP或RAR压缩文件密码
Jan 09 Python
python中字典增加和删除使用方法
Sep 30 Python
Python序列化与反序列化相关知识总结
Jun 08 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中ob_start()函数的用法
2013/06/24 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
Smarty模板配置实例简析
2019/07/20 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
简单谈谈javascript高级特性
2019/09/04 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
从零学Python之hello world
2014/05/21 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
生产管理的三大手法
2013/11/11 职场文书
西门豹教学反思
2014/02/04 职场文书
文明班集体申报材料
2014/05/23 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
钱学森电影观后感
2015/06/04 职场文书