在程序設計中,時常會遇到數據的唯一化、相同、相異信息的提取等工作,在格式化的向量存儲矩陣中南,numpy能夠提供比較不錯的快速處理功能。
1,唯一化的實現:
In [63]: data = np.array(['int','float','int','boolean','double','boolean'])In [64]: dataOut[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]: dataOut[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])
通過unique可以實現數組的唯一化,并且,唯一化后的返回值會進行排序。
2,交集的實現
In [69]: data1 = np.arange(10)In [70]: data1Out[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可以實現求取兩個數組集合的交集。
2,并集計算
In [73]: np.union1d(data1,data2)Out[73]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
union1d可以實現對兩個數組集合的并集計算。
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)
通過in1d可以實現對第一個參數數組中的每個元素是否是第二個參數數組子集的判斷,而最終通過判斷返回的布爾數組即可判斷兩個參數數組的子集關系。
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可以求解出存在于第一個集合但是并不存在于第二個集合中的元素。返回值是一個數組集合。
4.1 數組“異或”求解
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用于求解不同時存在于兩個數組中的元素,并返回一個數組集合。兩個參數的順序變化不會改變求解的結果。返回的結果是是一個有序的數組序列。
上面的幾個基本的邏輯判斷功能如果能夠使用得當,能夠實現多種篩選判斷的操作。
這篇對numpy中的數組條件篩選功能詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答