PythonNumpy中数组的集合操作详解

PythonNumpy中数组的集合操作详解

我们知道两个 set 对象之间,可以取交集、并集、差集、对称差集,举个例子:

s1 = {1, 2, 3} s2 = {2, 3, 4} """ &: 交集 |: 并集  -: 差集 ^: 对称差集 """ # 以下几种方式是等价的 # 但是一般我们都会使用操作符来进行处理,因为比较方便 print(s1 & s1) print(s1.intersection(s2)) print(set.intersection(s1, s2)) """ {2, 3} {2, 3} {2, 3} """ print(s1 | s2) print(s1.union(s2)) print(set.union(s1, s1)) """ {1, 2, 3, 4} {1, 2, 3, 4} {1, 2, 3, 4} """ print(s1 - s2, s2 - s1) print(s1.difference(s2),       s2.difference(s1)) print(set.difference(s1, s2),       set.difference(s2, s1)) """ {1} {4} {1} {4} {1} {4} """ print(s1 ^ s2) print(s1.symmetric_difference(s2)) print(set.symmetric_difference(s1, s2)) """ {1, 4} {1, 4} {1, 4} """ # 另外,我们还可以同时对多个集合操作,不仅仅是两个 print({1, 2, 3} & {2, 3, 4} & {3, 4, 5})  # {3}

那么 Numpy 的数组之间,可不可以执行这些操作呢?答案是可以的,Numpy 提供了一些 API,用于数组之间的集合运算。

但需要注意,数组虽然也支持 & 等操作符,但是它们代表的意义和集合无关。

import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([2, 3, 4]) # 两个数组 & # 表示将数组里面对应的元素分别进行"按位与"操作 print(arr1 & arr2)  # [0 2 0]

所以我们需要使用 Numpy 提供的 API 进行运算。

import numpy as np arr1 = np.array([1, 2, 2, 3]) arr2 = np.array([2, 3, 4, 4]) # 取交集 print(     np.intersect1d(arr1, arr2) )  # [2 3] # 取并集 print(     np.union1d(arr1, arr2) )  # [1 2 3 4] # 取差集 print(     np.setdiff1d(arr1, arr2),     np.setdiff1d(arr2, arr1) )  # [1] [4] # 取对称差集 print(     np.setxor1d(arr1, arr2) )  # [1 4]

接收两个数组,返回一个数组。并且原始数组中的元素允许重复,对结果没有影响。

另外,上面的函数都只能接收两个数组,如果我们想同时对任意多个数组操作呢?很简单,使用 reduce 即可。

from functools import reduce import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([2, 3, 4]) arr3 = np.array([3, 4, 5]) print(     reduce(np.intersect1d,            [arr1, arr2, arr3]) )  # [3]

总的来说还是比较简单的。

到此这篇关于Python Numpy中数组的集合操作详解的文章就介绍到这了,更多相关Numpy数组集合操作内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    数列求和快捷键|数组求和快捷键

    数列求和快捷键|数组求和快捷键,,数组求和快捷键1,这是文本型数组直接运算 不可能 除非单个的取出来分割后转数值型,再找相同的X[1],进行X[2

    数组公式如何使用

    数组公式如何使用,计算,输入,数组,多列,数据,快速,  在excel中,要进行计算常用的是先设置第一行的公式,然后在采取下拉的方式来完成,如果同时要

    php 删除数组重复的值

    php 删除数组重复的值,数组,函数,本文目录php 删除数组重复的值如何正确实现PHP删除数组重复元素PHP二维数组如何实现去除重复项php数组怎

    php如何把一个数组倒序输出

    php如何把一个数组倒序输出,输出,数组,倒序,方法,循环,函数,PHP是一种流行的服务器端脚本语言,常用于Web开发。在PHP中,数组是一种非常常见的数据

    javascript中定义数组的方法有哪些

    javascript中定义数组的方法有哪些,数组,数组名,列表,元素,语句,方法,javascript中定义数组的方法:1、使用“var 数组名=[值列表]”语句;2、使用

    javascript如何删除数组元素

    javascript如何删除数组元素,方法,删除,数组,元素,数组元素,对象,javascript删除数组元素的方法:1、使用length属性;2、使用delete关键字;3、使用

    js数组怎么删除某个元素

    js数组怎么删除某个元素,删除,元素,方法,数组,数组元素,关键字,js数组删除某个元素的方法:1、使用splice()方法;2、使用pop()方法;3、使用shift()

    javascript如何将字符串转为数组

    javascript如何将字符串转为数组,数组,字符串,方法,参数,扩展,语法,3种转换方法:1、使用split(),可将给定字符串拆分为字符串数组,语法“str.split

    javascript获取数组长度有什么方法

    javascript获取数组长度有什么方法,属性,数组长度,元素,对象,数组,获取,在javascript中,可以利用array对象的length属性来获取数组长度,该属性可

    php两个数组合并方法有哪些

    php两个数组合并方法有哪些,数组,合并,索引,数字,元素,输出,php两个数组合并方法:1、创建一个php示例文件,定义两个变量为“$a”和“$b”,使用“+

    java定义数组的方法有哪些

    java定义数组的方法有哪些,数组,数组类型,数组名,方法,数组元素,数组长度,java定义数组的方法有:1、【数组类型[] 数组名 = new 数组类型[数组长

    Java中如何将数组转换为List

    Java中如何将数组转换为List,数组,方法,引用类型,转换,转为,数据,一.最常见方式(未必最佳)通过 Arrays.asList(strArray) 方式,将数组转换List