栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

NumPy之求数组集合运算

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

NumPy之求数组集合运算

NumPy之求数组集合运算
  • 一、交集
    • 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中的元素

3.2、使用方法
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])
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号