Numpy(Pandas)删除全为零的列的方法
作者:SongpingWang 发布时间:2022-07-23 13:13:59
标签:Numpy,删除,列
在处理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), :] # 删了它
来源:https://blog.csdn.net/wsp_1138886114/article/details/108450410


猜你喜欢
- 什么是结构体结构是表示字段集合的用户定义类型。它可以用于将数据分组为单个单元而不是将每个数据作为单独的值的地方。例如,员工有firstNam
- 1. 首先是环境的安装 (本人使用的是PyCharm,python3.6)pip3 install PyQt5 (没有指定版本的话,默认会安
- 在mysql中查询5条不重复的数据,使用以下:SELECT * FROM `table` ORDER BY RAND() LIMIT 5就可
- 当我们进行数据分析时,有时候需要对数值型数据进行离散化,将其划分为不同的标签或类别。这样做可以方便我们进行统计和分析,并帮助我们更好地理解数
- 最近在学习Golang语言,中间遇到一个前辈指点,有一个学习原则:Learning By Doing。跟我之前学习Java的经验高度契合。在
- 代码如下:<input name="file" type="file"> formsiz
- 本文实例讲述了Python读取Pickle文件信息并计算与当前时间间隔的方法。分享给大家供大家参考,具体如下:python—–读取Pickl
- Numpy是什么很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。
- 1下载安装1.1打开官网http://www.jetbrains.com/pycharm/download/耐心等待,大概200M,几分钟左
- 1、说明这篇文章是帮一个群友解答的问题。他有一个需求,就是对于日期的录入都是中文形式的,需要转换为数字形式的。由于python库中没有函数直
- 前言Always On 可用性组活动辅助功能包括支持在辅助副本上执行备份操作。 备份操作可能会给 I/O 和 CPU 带来很大的压力(使用备
- Dreamweaver中一直变色的超级链接,css+javascript实现超级链接变色,当鼠标移动到链接上时,链接的颜色不停闪烁变色。&l
- 适配器模式适配器是一种结构型设计模式, 它能使不兼容的对象能够相互合作。适配器可担任两个对象间的封装器, 它会接收对于一个对象的调用, 并将
- 代码如下#!/bin/python#coding=utf-8#python-version=2.75  
- 这篇文章主要介绍了Python变量作用域LEGB用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 本文以实例形式讲述了Python中replace方法,很有实用价值,具体如下:replace方法主要有两种:last_date = &quo
- 前言最近在写行为识别的代码,涉及到两个网络的融合,这个融合是有加权的网络结果的融合,所以需要对网络的结果进行加权(相乘)和融合(相加)。最初
- 前言最近因为工作需要要使用PHP 7,所以从网上找教程进行安装, 结果编译没问题, 安装的时候报了错误。错误如下cp -pR -f phar
- 我们都知道数据是无价,如果不对数据进行备份,相当是让数据在裸跑,一旦服务器出问题,只有哭的份了。下面将介绍mysql数据库的自动备份,大家可
- 使用el-upload 上传视频总是报404错误,具体也不知道什么原因(如有知道的请评论告知,谢谢),去网上查了很多,代码写法确定