您现在的位置是:网站首页> 编程资料编程资料
Python Numpy中数组的集合操作详解_python_
2023-05-26
338人已围观
简介 Python Numpy中数组的集合操作详解_python_
我们知道两个 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数组集合操作内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- python中关于对super()函数疑问解惑_python_
- 修复python-memcached在python3.8环境中报SyntaxWarning的问题(完美解决)_python_
- Python3中常见配置文件写法汇总_python_
- Python中requests库的基本概念与具体使用方法_python_
- 一文掌握python中的时间包_python_
- uwsgi启动django项目的实现步骤_python_
- Python+Pygame实战之英文版猜字游戏的实现_python_
- 使用pip下载时提示"You are using pip version 8.1.1, however version 22.1 is available."错误解决_python_
- Python中os模块的12种用法总结_python_
- Python PaddlePaddle机器学习之求解线性模型_python_
