如何对numpy中的数组条件筛选

  • 时间:
  • 8011人关注

今天小编就为大家分享一篇对numpy中的数组条件筛选功能详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,另外这篇文章主要知识点是关于numpy、数组、Python的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

教程详情电子资料
  • 教程类别:Python
  • 编辑整理:董飞鹏
  • 教程字数:1664字节
  • 阅读时间:大概7分钟
  • 下载本教程(DOC版)
  • 数据结构:稀疏数组(Java实现)
  • NumPy攻略:Python科学计算与数据分析
  • C语言解惑:指针 数组 函数和多文件编程
  • 在程序设计中,时常会遇到数据的唯一化、相同、相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能。

    1,唯一化的实现:

    In [63]: data = np.array(['int','float','int','boolean','double','boolean'])
    In [64]: data
    Out[64]:
    array(['int', 'float', 'int', 'boolean', 'double', 'boolean'],
      dtype='|S7')
    In [65]: np.unique(data)
    Out[65]:
    array(['boolean', 'double', 'float', 'int'],
      dtype='|S7')
    In [66]: data = np.array([1,5,3,6,2,4,1,3,5,7,9])
    In [67]: data
    Out[67]: array([1, 5, 3, 6, 2, 4, 1, 3, 5, 7, 9])
    In [68]: np.unique(data)
    Out[68]: array([1, 2, 3, 4, 5, 6, 7, 9])
    

    通过unique可以实现数组的唯一化,并且,唯一化后的返回值会进行排序。

    2,交集的实现

    In [69]: data1 = np.arange(10)
    In [70]: data1
    Out[70]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    In [71]: data2 = np.array([2,8,6,4])
    In [72]: np.intersect1d(data1,data2)
    Out[72]: array([2, 4, 6, 8])
    

    使用intersect1d可以实现求取两个数组集合的交集。

    2,并集计算

    In [73]: np.union1d(data1,data2)
    Out[73]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

    union1d可以实现对两个数组集合的并集计算。

    3,子集判断

    In [74]: np.in1d(data1,data2)
    Out[74]: array([False, False, True, False, True, False, True, False, True, False], dtype=bool)
    In [75]: np.in1d(data2,data1)
    Out[75]: array([ True, True, True, True], dtype=bool)
    

    通过in1d可以实现对第一个参数数组中的每个元素是否是第二个参数数组子集的判断,而最终通过判断返回的布尔数组即可判断两个参数数组的子集关系。

    4,差异判断

    4.1,集合差判断

    In [76]: np.setdiff1d(data1,data2)
    Out[76]: array([0, 1, 3, 5, 7, 9])
    In [77]: np.setdiff1d(data2,data1)
    Out[77]: array([], dtype=int32)
    

    setdiff1d可以求解出存在于第一个集合但是并不存在于第二个集合中的元素。返回值是一个数组集合。

    4.1 数组“异或”求解

    In [78]: np.setxor1d(data1,data2)
    Out[78]: array([0, 1, 3, 5, 7, 9])
    In [79]: np.setxor1d(data2,data1)
    Out[79]: array([0, 1, 3, 5, 7, 9])
    

    setxor1d用于求解不同时存在于两个数组中的元素,并返回一个数组集合。两个参数的顺序变化不会改变求解的结果。返回的结果是是一个有序的数组序列。

    上面的几个基本的逻辑判断功能如果能够使用得当,能够实现多种筛选判断的操作。

    这篇对numpy中的数组条件筛选功能详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。


    上一篇:基于DataFrame某一列的值来选择具体的某一行方法

    下一篇:解决Pandas同元素多列去重问题

    相关内容

    • 如何用Java实现将容器 Map中的内容保存到数组

      这篇文章主要介绍了Java实现将容器 Map中的内容保存到数组,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

      05-03Java Map内容保存数组

      阅读更多
    • java如何定义数组

      Java中数组定义的三种方式 1.先声明 2.分配空间 3.赋值 public class arr{ public static void main(String[] args){ int[] arr; //先声明 arr=new int[5]; //分配空间 for(int i=0;i5;i++)arr[i]=i*10; //赋值 for(int i=0;i5;i++){ System.out.println(arr[+i+]=+arr[i]); } }} 结果: 方法二: 1.声明并分配空间 2.赋值

      04-27java定义数组方法

      阅读更多
    • 实现Python3数组旋转的3种算法实例

      在本篇文章里小编给大家整理的是一篇关于实现Python3数组旋转的3种算法实例内容,需要的朋友们可以学习参考下。

      04-163种算法实现Python3数组的旋转

      阅读更多
    • java如何增加数组长度

      java中的数组是定长的,无法动态增加长度。如果要扩充数组,只能通过重新定义数组,把旧数组内容拷贝到新数组中。 例如: 1、定义一个旧数组 int[] arrOld = new int[2];//旧数组定义 2、要扩充数组长度到3,需要重新定义数组 int[] arrNew = new int[3];//定义新数组 for(int i=0;iarrOld.length;i++){ arrNew[i] = arrOld[i];//把旧数组中的元素拷贝到新数组中

      12-18java怎样扩充数组长度

      阅读更多
    • java中数组是引用数据类型吗

      可以,数组中元素可以是任何类型的。如一个类类型的数组类名[] arr = new 类名[大小];那么这个数组就是存放类的,类就是这个数组中的引用类型元素。

      12-15java里数组是引用数据类型吗

      阅读更多
    • Python高级编程(第2版)

      Python高级编程(第2版)

      Python作为一种高-级程序设计语言,本书于Python 3.5版本进行讲解,深度揭示了Python编程的高级技巧,适合想要进一步提高自身Python编程技能的读者阅读,也适合对Python编程感兴趣的读者参考学习

      大小:76.8 MBPython

      点击下载
    • Python Linux系统管理与自动化运维

      Python Linux系统管理与自动化运维

      很多工程师学习Python,学完就忘,忘了再学,循环往复,就是因为实践不充分导致的。本书包含了大量的实战案例,可以很好地作为Python的进阶教材,读者也可以举一反三,编写自己的管理程序

      大小:170.5 MBPython运维

      点击下载
    • python算法教程

      python算法教程

      大小:43 MBpython

      点击下载
    • Python计算机视觉编程

      Python计算机视觉编程

      大小:4.8 MBPython编程

      点击下载
    • Python 快速入门

      Python 快速入门

      Python现如今早已发展趋势变成这种令人震惊的编程语言,它已强劲到得以解决从最底层资源到手机应用程序(如深度神经网络)的各个方面。它既简约、雅致又作用完善,还有着巨大的由库和

      大小:9.73 MBPython入门

      点击下载
    • 零基础轻松学Python

      零基础轻松学Python

      Python鼻祖GuidovanRossum力荐的Python新手入门书。这书以浅显易懂的語言、好玩儿趣味的实例让用户轻松、由浅入深地重零开始把握Python3程序编写。这书內容都是创作者领着的Python实战演练圈里数

      大小:120.16 MBPython3基础

      点击下载
    • Python网络爬虫权威指南

      Python网络爬虫权威指南

      做为这种收集和了解互联网上海量信息的方法,网页页面爬取技术性变得更加关键。而撰写简易的自动化技术程序流程(网络爬虫),多次就能够全自动爬取几百万个网页页面中的信息内容,

      大小:5.54 MBPython爬虫

      点击下载
    • Python机器学习

      Python机器学习

      《Python机器学习》是一本关于Python的电子书资源,涉及Python、机器学习等相关内容,本文提供大小为198MB的超清第2PDF格式电子书下载,希望大家能够喜欢。

      大小:59.6 MBPython

      点击下载
    • Python数据分析:基于Plotly的动态可视化绘图

      Python数据分析:基于Plotly的动态可视化绘图

      大小:191.3 MBPython数据

      点击下载

    学习笔记