對(duì)numpy中的數(shù)組條件篩選功能詳解
在程序設(shè)計(jì)中,時(shí)常會(huì)遇到數(shù)據(jù)的唯一化、相同、相異信息的提取等工作,在格式化的向量存儲(chǔ)矩陣中南,numpy能夠提供比較不錯(cuò)的快速處理功能。
1,唯一化的實(shí)現(xiàn):
In [63]: data = np.array(['int','float','int','boolean','double','boolean']) In [64]: data Out[64]: array(['int', 'float', 'int', 'boolean', 'double', 'boolean'], dtype='|S7') In [65]: np.unique(data) Out[65]: array(['boolean', 'double', 'float', 'int'], dtype='|S7') In [66]: data = np.array([1,5,3,6,2,4,1,3,5,7,9]) In [67]: data Out[67]: array([1, 5, 3, 6, 2, 4, 1, 3, 5, 7, 9]) In [68]: np.unique(data) Out[68]: array([1, 2, 3, 4, 5, 6, 7, 9])
通過(guò)unique可以實(shí)現(xiàn)數(shù)組的唯一化,并且,唯一化后的返回值會(huì)進(jìn)行排序。
2,交集的實(shí)現(xiàn)
In [69]: data1 = np.arange(10) In [70]: data1 Out[70]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) In [71]: data2 = np.array([2,8,6,4]) In [72]: np.intersect1d(data1,data2) Out[72]: array([2, 4, 6, 8])
使用intersect1d可以實(shí)現(xiàn)求取兩個(gè)數(shù)組集合的交集。
2,并集計(jì)算
In [73]: np.union1d(data1,data2) Out[73]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
union1d可以實(shí)現(xiàn)對(duì)兩個(gè)數(shù)組集合的并集計(jì)算。
3,子集判斷
In [74]: np.in1d(data1,data2) Out[74]: array([False, False, True, False, True, False, True, False, True, False], dtype=bool) In [75]: np.in1d(data2,data1) Out[75]: array([ True, True, True, True], dtype=bool)
通過(guò)in1d可以實(shí)現(xiàn)對(duì)第一個(gè)參數(shù)數(shù)組中的每個(gè)元素是否是第二個(gè)參數(shù)數(shù)組子集的判斷,而最終通過(guò)判斷返回的布爾數(shù)組即可判斷兩個(gè)參數(shù)數(shù)組的子集關(guān)系。
4,差異判斷
4.1,集合差判斷
In [76]: np.setdiff1d(data1,data2) Out[76]: array([0, 1, 3, 5, 7, 9]) In [77]: np.setdiff1d(data2,data1) Out[77]: array([], dtype=int32)
setdiff1d可以求解出存在于第一個(gè)集合但是并不存在于第二個(gè)集合中的元素。返回值是一個(gè)數(shù)組集合。
4.1 數(shù)組“異或”求解
In [78]: np.setxor1d(data1,data2) Out[78]: array([0, 1, 3, 5, 7, 9]) In [79]: np.setxor1d(data2,data1) Out[79]: array([0, 1, 3, 5, 7, 9])
setxor1d用于求解不同時(shí)存在于兩個(gè)數(shù)組中的元素,并返回一個(gè)數(shù)組集合。兩個(gè)參數(shù)的順序變化不會(huì)改變求解的結(jié)果。返回的結(jié)果是是一個(gè)有序的數(shù)組序列。
上面的幾個(gè)基本的邏輯判斷功能如果能夠使用得當(dāng),能夠?qū)崿F(xiàn)多種篩選判斷的操作。
這篇對(duì)numpy中的數(shù)組條件篩選功能詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu下升級(jí) python3.7.1流程備忘(推薦)
這篇文章主要介紹了Ubuntu下升級(jí) python3.7.1流程備忘,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-12-12
關(guān)于networkx返回圖的鄰接矩陣問(wèn)題
這篇文章主要介紹了關(guān)于networkx返回圖的鄰接矩陣問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
Yolov5(v5.0)+pyqt5界面設(shè)計(jì)圖文教程
眾所周知界面設(shè)計(jì)一般指UI設(shè)計(jì),下面這篇文章主要給大家介紹了關(guān)于Yolov5(v5.0)+pyqt5界面設(shè)計(jì)的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
Python讀取CSV文件的4種方法與注意事項(xiàng)
在python里面,讀取或?qū)懭隿sv文件時(shí)是經(jīng)常遇到的一個(gè)需求,這篇文章主要給大家介紹了關(guān)于Python讀取CSV文件的4種方法與注意事項(xiàng),需要的朋友可以參考下2023-10-10

