Python Numpy中數(shù)組的集合操作詳解
我們知道兩個 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 的數(shù)組之間,可不可以執(zhí)行這些操作呢?答案是可以的,Numpy 提供了一些 API,用于數(shù)組之間的集合運算。
但需要注意,數(shù)組雖然也支持 & 等操作符,但是它們代表的意義和集合無關(guān)。
import?numpy?as?np arr1?=?np.array([1,?2,?3]) arr2?=?np.array([2,?3,?4]) #?兩個數(shù)組?& #?表示將數(shù)組里面對應(yīng)的元素分別進行"按位與"操作 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]
接收兩個數(shù)組,返回一個數(shù)組。并且原始數(shù)組中的元素允許重復(fù),對結(jié)果沒有影響。
另外,上面的函數(shù)都只能接收兩個數(shù)組,如果我們想同時對任意多個數(shù)組操作呢?很簡單,使用 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]
總的來說還是比較簡單的。
到此這篇關(guān)于Python Numpy中數(shù)組的集合操作詳解的文章就介紹到這了,更多相關(guān)Numpy數(shù)組集合操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實現(xiàn)kNN算法識別手寫體數(shù)字的示例代碼
這篇文章主要介紹了python實現(xiàn)kNN算法識別手寫體數(shù)字的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08python實現(xiàn)BP神經(jīng)網(wǎng)絡(luò)回歸預(yù)測模型
這篇文章主要介紹了python實現(xiàn)BP神經(jīng)網(wǎng)絡(luò)回歸預(yù)測模型,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08解決ImportError: cannot import name ‘Imput
您遇到的ImportError: cannot import name ‘Imputer‘錯誤提示表明您嘗試導(dǎo)入一個名為’Imputer’的模塊或類,但是該模塊或類無法找到,本文小編給大家介紹了如何解決這個問題,需要的朋友可以參考下2023-10-10