Python中的np.setdiff1d()函數(shù)詳解
Python中的np.setdiff1d()
函數(shù)可用于找出兩個(gè)序列集合中元素的差異
API及參數(shù)如下:
np.setdiff1d(ar1,ar2,assume_unique):找出序列1在序列2中的差異,并返回序列1中不在序列2中的元素
- ar1:輸入數(shù)組
- ar2:輸入比較數(shù)組
- assume_unique:是否假設(shè)唯一,默認(rèn)為False,輸出去重且元素從小到大排序,如果為True,則不會去重,輸出順序保持原來的順序
以下是一個(gè)使用示例:
import numpy as np a = np.array([3, 2, 2, 1]) b = np.array([5, 4, 3, 3]) # a = [3, 2, 2, 1] # b = [5, 4, 3, 3] c = np.setdiff1d(a, b) print(c) # [1 2] c = np.setdiff1d(a, b, assume_unique=True) print(c) # [2 2 1]
補(bǔ)充:python numpy中setdiff1d的用法
一、函數(shù)解釋
setdiff1d(ar1, ar2, assume_unique=False)
1.功能:找到2個(gè)數(shù)組中集合元素的差異。
2.返回值:在ar1中但不在ar2中的已排序的唯一值。
3.參數(shù):
- ar1:array_like 輸入數(shù)組。
- ar2:array_like 輸入比較數(shù)組。
- assume_unique:bool。如果為True,則假定輸入數(shù)組是唯一的,即可以加快計(jì)算速度。 默認(rèn)值為False。
二、具體示例
1.assume_unique = False的情況:
a = np.array([1,2,3]) b = np.array([4,5,6]) c = np.setdiff1d(a, b) print(c)#[1 2 3]
a = np.array([1,2,3]) b = np.array([1,2,3]) c = np.setdiff1d(a, b) print(c)#[]
a = np.array([1,2,3]) b = np.array([2,3,4]) c = np.setdiff1d(a, b) print(c)#[1]
a = np.array([1,2,3,4]) b = np.array([3,4,5,6]) c = np.setdiff1d(a, b) print(c)#[1 2]
a = np.array([1,2,3,2,4,1]) b = np.array([3,4,5,6]) c = np.setdiff1d(a, b) print(c)#[1 2]
a = np.array([8,2,3,2,4,1]) b = np.array([7,4,5,6,3]) c = np.setdiff1d(a, b) print(c)#[1 2 8]
可以從最后看出返回的值從小到大排序,并且唯一。(8在a的第1位,2在a中重復(fù)了2次)
2.assume_unique = True的情況: ???????
a = np.array([3,2,1]) b = np.array([4,5,6]) c = np.setdiff1d(a, b,True) print(c)#[3 2 1]
a = np.array([8,2,3,2,4,1]) b = np.array([7,4,5,6,3]) c = np.setdiff1d(a, b,True) print(c)#[8 2 2 1]
a = np.array([8,2,3,4,2,4,1]) b = np.array([7,9,5,6,3]) c = np.setdiff1d(a, b,True) print(c)#[8 2 4 2 4 1]
可以看出把在a中的但是不在b中的元素按a中的順序排序,并且不合并重復(fù)的元素,即假定輸入數(shù)組也是唯一的,因此相比于False確實(shí)提升了運(yùn)算速度。
三、整體代碼
import numpy as np def main(): a = np.array([1,2,3]) b = np.array([4,5,6]) c = np.setdiff1d(a, b) print(c)#[1 2 3] a = np.array([1,2,3]) b = np.array([1,2,3]) c = np.setdiff1d(a, b) print(c)#[] a = np.array([1,2,3]) b = np.array([2,3,4]) c = np.setdiff1d(a, b) print(c)#[1] a = np.array([1,2,3,4]) b = np.array([3,4,5,6]) c = np.setdiff1d(a, b) print(c)#[1 2] a = np.array([1,2,3,2,4,1]) b = np.array([3,4,5,6]) c = np.setdiff1d(a, b) print(c)#[1 2] a = np.array([8,2,3,2,4,1]) b = np.array([7,4,5,6,3]) c = np.setdiff1d(a, b) print(c)#[1 2 8] a = np.array([3,2,1]) b = np.array([4,5,6]) c = np.setdiff1d(a, b,True) print(c)#[3 2 1] a = np.array([8,2,3,2,4,1]) b = np.array([7,4,5,6,3]) c = np.setdiff1d(a, b,True) print(c)#[8 2 2 1] a = np.array([8,2,3,4,2,4,1]) b = np.array([7,9,5,6,3]) c = np.setdiff1d(a, b,True) print(c)#[8 2 4 2 4 1] if __name__ == '__main__': main()
到此這篇關(guān)于Python中的np.setdiff1d()函數(shù)的文章就介紹到這了,更多相關(guān)Python np.setdiff1d()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python調(diào)試神器之PySnooper的使用教程分享
對于每個(gè)程序開發(fā)者來說,調(diào)試幾乎是必備技能。本文小編就來給大家介紹一款非常好用的調(diào)試工具,它能在一些場景下,大幅度提高調(diào)試的效率, 那就是 PySnooper,希望大家喜歡2023-02-02Python實(shí)現(xiàn)線性搜索算法的示例代碼
線性搜索算法,也稱為順序搜索算法,是一種簡單但常用的搜索技術(shù),在本文中,將深入研究線性搜索算法,并演示如何在?Python?中實(shí)現(xiàn)它,需要的可以參考下2024-02-02Django用戶登錄與注冊系統(tǒng)的實(shí)現(xiàn)示例
這篇文章主要介紹了Django用戶登錄與注冊系統(tǒng)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06