Python NumPy實現(xiàn)數(shù)組排序與過濾示例分析講解
數(shù)組排序
排序是指將元素按有序順序排列。
有序序列是擁有與元素相對應(yīng)的順序的任何序列,例如數(shù)字或字母、升序或降序。
NumPy ndarray 對象有一個名為 sort() 的函數(shù),該函數(shù)將對指定的數(shù)組進(jìn)行排序。
實例
對數(shù)組進(jìn)行排序:
import numpy as np arr = np.array([3, 2, 0, 1]) print(np.sort(arr))
運行實例
注釋:此方法返回數(shù)組的副本,而原始數(shù)組保持不變。
您還可以對字符串?dāng)?shù)組或任何其他數(shù)據(jù)類型進(jìn)行排序:
實例
對數(shù)組以字母順序進(jìn)行排序:
import numpy as np arr = np.array(['banana', 'cherry', 'apple']) print(np.sort(arr))
運行實例
實例
對布爾數(shù)組進(jìn)行排序:
import numpy as np arr = np.array([True, False, True]) print(np.sort(arr)) 運行實例
對2-D數(shù)組排序
如果在二維數(shù)組上使用 sort() 方法,則將對兩個數(shù)組進(jìn)行排序:
實例
對 2-D 數(shù)組排序
import numpy as np arr = np.array([[3, 2, 4], [5, 0, 1]]) print(np.sort(arr))
運行實例
數(shù)組過濾
從現(xiàn)有數(shù)組中取出一些元素并從中創(chuàng)建新數(shù)組稱為過濾(filtering)。
在 NumPy 中,我們使用布爾索引列表來過濾數(shù)組。
布爾索引列表是與數(shù)組中的索引相對應(yīng)的布爾值列表。
如果索引處的值為 True,則該元素包含在過濾后的數(shù)組中;如果索引處的值為 False,則該元素將從過濾后的數(shù)組中排除。
實例
用索引 0 和 2、4 上的元素創(chuàng)建一個數(shù)組:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) x = [True, False, True, False, True] newarr = arr[x] print(newarr)
運行實例
上例將返回 [61, 63, 65],為什么?
因為新過濾器僅包含過濾器數(shù)組有值 True 的值,所以在這種情況下,索引為 0 和 2、4。
創(chuàng)建過濾器數(shù)組
在上例中,我們對 True 和 False 值進(jìn)行了硬編碼,但通常的用途是根據(jù)條件創(chuàng)建過濾器數(shù)組。
實例
創(chuàng)建一個僅返回大于 62 的值的過濾器數(shù)組:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) # 創(chuàng)建一個空列表 filter_arr = [] # 遍歷 arr 中的每個元素 for element in arr: # 如果元素大于 62,則將值設(shè)置為 True,否則為 False: if element > 62: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
運行實例
實例
創(chuàng)建一個過濾器數(shù)組,該數(shù)組僅返回原始數(shù)組中的偶數(shù)元素:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) # 創(chuàng)建一個空列表 filter_arr = [] # 遍歷 arr 中的每個元素 for element in arr: # 如果元素可以被 2 整除,則將值設(shè)置為 True,否則設(shè)置為 False if element % 2 == 0: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
運行實例
直接從數(shù)組創(chuàng)建過濾器
上例是 NumPy 中非常常見的任務(wù),NumPy 提供了解決該問題的好方法。
我們可以在條件中直接替換數(shù)組而不是 iterable 變量,它會如我們期望地那樣工作。
實例
創(chuàng)建一個僅返回大于 62 的值的過濾器數(shù)組:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) filter_arr = arr > 62 newarr = arr[filter_arr] print(filter_arr) print(newarr)
運行實例
實例
創(chuàng)建一個過濾器數(shù)組,該數(shù)組僅返回原始數(shù)組中的偶數(shù)元素:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) filter_arr = arr % 2 == 0 newarr = arr[filter_arr] print(filter_arr) print(newarr)
運行實例
到此這篇關(guān)于Python NumPy實現(xiàn)數(shù)組排序與過濾示例分析講解的文章就介紹到這了,更多相關(guān)Python NumPy數(shù)組排序與過濾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用Thread的setDaemon啟動后臺線程教程
這篇文章主要介紹了python使用Thread的setDaemon啟動后臺線程教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04解決python3運行selenium下HTMLTestRunner報錯的問題
今天小編就為大家分享一篇解決python3運行selenium下HTMLTestRunner報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12Python Mysql數(shù)據(jù)庫操作 Perl操作Mysql數(shù)據(jù)庫
python對mysql數(shù)據(jù)庫的一些操作實現(xiàn)代碼2009-01-01安裝python-docx后,無法在pycharm中導(dǎo)入的解決方案
這篇文章主要介紹了安裝python-docx后,無法在pycharm中導(dǎo)入的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03python?Seaborn繪制統(tǒng)計圖全面指南(直方圖散點圖小提琴圖熱力圖相關(guān)系數(shù)圖多張合并)
這篇文章主要介紹了python?Seaborn繪制統(tǒng)計圖全面指南,包括直方圖,散點圖,小提琴圖,熱力圖,相關(guān)系數(shù)圖及多張圖合并的實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助2024-01-01