- 一、交集
- 1.1、参数介绍
- 1.2、使用方法
- 二、并集
- 1.1、参数介绍
- 1.2、使用方法
- 三、差集
- 3.1、参数介绍
- 3.2、使用方法
- 四、异或集合
- 4.1、参数介绍
- 4.2、使用方法
intersect1d的作用是用来求两个数组的交集。
1.1、参数介绍numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)
数入参数
ar1,ar2:输入数组,如果不是一维数组将会被展平成一维数组。 assume_unique:如果为 True,则假定输入数组都是唯一的,这可以加快计算速度。如果 True 但 ar1 或 ar2 不是唯一的,则可能导致不正确的结果和越界索引。默认为假 return_indices:如果为 True,则返回对应于两个数组交集的索引。如果有多个值,则只返回第一个值。
返回值
intersect1d:排序后的两个输入数组中的交集元素 comm1:交集元素在第一个数组中的序号 comm2:交集元素在第二个数组中的序号1.2、使用方法
In [1]: import numpy as np In [2]: np.intersect1d([1, 3, 4, 3], [3, 1, 2, 1]) Out[2]: array([1, 3])
如果要对两个以上的数组进行求交集,可以是用reduce函数.
In [3]: from functools import reduce In [4]: reduce(np.intersect1d, ([1, 3, 4, 3], [3, 1, 2, 1], [6, 3, 4, 2])) Out[4]: array([3])
返回交集元素的索引值
In [5]: x = np.array([1, 1, 2, 3, 4]) In [6]: y = np.array([2, 1, 4, 6]) In [7]: xy, x_ind, y_ind = np.intersect1d(x, y, return_indices=True) In [8]: #交集元素 In [9]: xy Out[9]: array([1, 2, 4]) In [10]: #1,2,4在第一个数组中的索引值 In [11]: x_ind Out[11]: array([0, 2, 4], dtype=int64) In [12]: #1,2,4在第二个数组中的索引值 In [13]: y_ind Out[13]: array([1, 0, 2], dtype=int64)二、并集
union1d返回多个数组的并集。
1.1、参数介绍numpy.union1d(ar1, ar2)
ar1,ar2:输入的两个数组。1.2、使用方法
In [14]: np.union1d([-1, 0, 1], [-2, 0, 2]) Out[14]: array([-2, -1, 0, 1, 2]) In [15]: ##两个以上的数组求并集 In [16]: reduce(np.union1d, ([1, 3, 4, 3], [3, 1, 2, 1], [6, 3, 4, 2])) Out[16]: array([1, 2, 3, 4, 6])三、差集
setdiff1d是计算一个数组在另一个数组中的差集。
3.1、参数介绍numpy.setdiff1d(ar1, ar2, assume_unique=False)
ar1,ar2:输入的两个数组
输出的是在ar1,但是不在ar2中的元素
In [17]: a = np.array([1, 2, 3, 2, 4, 1]) In [18]: b = np.array([3, 4, 5, 6]) In [19]: np.setdiff1d(a, b) Out[19]: array([1, 2])四、异或集合
setxor1d作用是对于两个数组,返回只在一个数组中存在的元素。
4.1、参数介绍numpy.setxor1d(ar1, ar2, assume_unique=False)
ar1、ar2:输入的两个数组 assume_unique:如果为True,则假定输入数组是唯一的,即可以加快计算速度。 默认值为False。4.2、使用方法
In [20]: a = np.array([1, 2, 3, 2, 4]) In [21]: b = np.array([2, 3, 5, 7, 5]) In [22]: np.setxor1d(a,b) Out[22]: array([1, 4, 5, 7])



