Python中的np.setdiff1d()函數(shù)詳解
Python中的np.setdiff1d()函數(shù)可用于找出兩個序列集合中元素的差異
API及參數(shù)如下:
np.setdiff1d(ar1,ar2,assume_unique):找出序列1在序列2中的差異,并返回序列1中不在序列2中的元素
- ar1:輸入數(shù)組
- ar2:輸入比較數(shù)組
- assume_unique:是否假設(shè)唯一,默認為False,輸出去重且元素從小到大排序,如果為True,則不會去重,輸出順序保持原來的順序
以下是一個使用示例:
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]
補充:python numpy中setdiff1d的用法
一、函數(shù)解釋
setdiff1d(ar1, ar2, assume_unique=False)
1.功能:找到2個數(shù)組中集合元素的差異。
2.返回值:在ar1中但不在ar2中的已排序的唯一值。
3.參數(shù):
- ar1:array_like 輸入數(shù)組。
- ar2:array_like 輸入比較數(shù)組。
- assume_unique:bool。如果為True,則假定輸入數(shù)組是唯一的,即可以加快計算速度。 默認值為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確實提升了運算速度。
三、整體代碼
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 crontab設(shè)置linux定時任務(wù)
本篇文章主要介紹了使用python crontab設(shè)置linux定時任務(wù),具有一定的參考價值,有需要的可以了解一下。2016-12-12
Python使用Spire.XLS for Python輕松實現(xiàn)Excel轉(zhuǎn)PDF的完整指南
在日常辦公和數(shù)據(jù)處理中,我們經(jīng)常需要將 Excel 文檔轉(zhuǎn)換為 PDF 格式,今天我們將介紹如何使用 Spire.XLS for Python 庫來實現(xiàn) Excel 到 PDF 的高效轉(zhuǎn)換,有需要的可以了解下2025-10-10

