numpy array找出符合條件的數(shù)并賦值的示例代碼
在python中利用numpy array進(jìn)行數(shù)據(jù)處理,經(jīng)常需要找出符合某些要求的數(shù)據(jù)位置,有時(shí)候還需要對(duì)這些位置重新賦值。這里總結(jié)了幾種找出符合條件數(shù)據(jù)位置的方法。
這里以一個(gè)8*8的隨機(jī)數(shù)組舉例,來(lái)找出大于零的數(shù)。
import numpy as np a = random.randint(-10,10,size=(8,8)) >>> array([[ 5, 5, -7, 7, -8, -7, 0, -8], [ -4, 9, 8, -3, 6, -4, -7, -5], [ 7, 0, 6, 6, -4, -2, -8, 2], [ 6, -5, 8, 4, 7, -8, -4, -4], [ 0, 1, -1, -8, -1, 9, 4, 1], [ 4, -8, -1, -8, -2, -6, -1, 9], [ 7, 7, 9, -9, 4, 8, 3, 1], [ -8, 4, -2, 4, -1, -4, -10, 0]])
1.直接利用條件索引
location= a[a>0] print(location) >>> array([5, 5, 7, 9, 8, 6, 7, 6, 6, 2, 6, 8, 4, 7, 1, 9, 4, 1, 4, 9, 7, 7, 9, ? ? ? ?4, 8, 3, 1, 4, 4]) # 直接輸出了大于0的數(shù)字 #--------------------------------------------------------------# # 我們可以用下面的方法將小于0的數(shù)字都設(shè)置為零,留下大于零的數(shù)字 b = a.copy() b[b<=0]=0 print(b) >>> [[5 5 0 7 0 0 0 0] ?[0 9 8 0 6 0 0 0] ?[7 0 6 6 0 0 0 2] ?[6 0 8 4 7 0 0 0] ?[0 1 0 0 0 9 4 1] ?[4 0 0 0 0 0 0 9] ?[7 7 9 0 4 8 3 1] ?[0 4 0 4 0 0 0 0]] ?# 這就將所有大于零的保留了下來(lái) #--------------------------------------------------------------# #還可以此類推,將大于零的位置都設(shè)置成1,可得到大于一的位置 b = a.copy() b[b>0] = 1 b[b<=0] = 0 print(b) >>> [[1 1 0 1 0 0 0 0] ?[0 1 1 0 1 0 0 0] ?[1 0 1 1 0 0 0 1] ?[1 0 1 1 1 0 0 0] ?[0 1 0 0 0 1 1 1] ?[1 0 0 0 0 0 0 1] ?[1 1 1 0 1 1 1 1] ?[0 1 0 1 0 0 0 0]]
2.利用numpy.where()
# results = np.where(condition, [x, y]) # 當(dāng)條件為真時(shí),對(duì)應(yīng)位置返回x中的值,條件不成立則返回y中的值 c = np.where(a>0,a,0) ?#滿足大于0的值保留,不滿足的設(shè)為0 print(c) >>> [[5 5 0 7 0 0 0 0] ?[0 9 8 0 6 0 0 0] ?[7 0 6 6 0 0 0 2] ?[6 0 8 4 7 0 0 0] ?[0 1 0 0 0 9 4 1] ?[4 0 0 0 0 0 0 9] ?[7 7 9 0 4 8 3 1] ?[0 4 0 4 0 0 0 0]] # 大于零為1小于零為0 c = np.where(a>0,1,0) ?#滿足大于0的值保留,不滿足的設(shè)為0 print(c) [[1 1 0 1 0 0 0 0] ?[0 1 1 0 1 0 0 0] ?[1 0 1 1 0 0 0 1] ?[1 0 1 1 1 0 0 0] ?[0 1 0 0 0 1 1 1] ?[1 0 0 0 0 0 0 1] ?[1 1 1 0 1 1 1 1] ?[0 1 0 1 0 0 0 0]]
3.直接邏輯運(yùn)算
a > 0 ? # 得到判斷矩陣 array([[ True, ?True, False, ?True, False, False, False, False], ? ? ? ?[False, ?True, ?True, False, ?True, False, False, False], ? ? ? ?[ True, False, ?True, ?True, False, False, False, ?True], ? ? ? ?[ True, False, ?True, ?True, ?True, False, False, False], ? ? ? ?[False, ?True, False, False, False, ?True, ?True, ?True], ? ? ? ?[ True, False, False, False, False, False, False, ?True], ? ? ? ?[ True, ?True, ?True, False, ?True, ?True, ?True, ?True], ? ? ? ?[False, ?True, False, ?True, False, False, False, False]], dtype=bool)
到此這篇關(guān)于numpy array找出符合條件的數(shù)并賦值的示例代碼的文章就介紹到這了,更多相關(guān)numpy array賦值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pycharm不在cmd中運(yùn)行卻在python控制臺(tái)運(yùn)行問(wèn)題解決
這篇文章主要介紹了pycharm不在cmd中運(yùn)行卻在python控制臺(tái)運(yùn)行問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Python環(huán)境下安裝使用異步任務(wù)隊(duì)列包Celery的基礎(chǔ)教程
這篇文章主要介紹了Python環(huán)境下安裝使用異步任務(wù)隊(duì)列包Celery的基礎(chǔ)教程,Celery的分布式任務(wù)管理適合用于服務(wù)器集群的管理和維護(hù),需要的朋友可以參考下2016-05-05python用700行代碼實(shí)現(xiàn)http客戶端
這篇文章主要介紹了python用700行代碼實(shí)現(xiàn)http客戶端的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01python使用PIL把透明背景圖片轉(zhuǎn)成白色背景的示例代碼
當(dāng)我們?cè)诓杉恍﹫D片的時(shí)候,這些圖片的背景經(jīng)常是透明的,但是如何把透明背景轉(zhuǎn)成白色背景呢,接下來(lái)就給大家解決這個(gè)問(wèn)題,本文主要介紹了python使用PIL把透明背景圖片轉(zhuǎn)成白色背景,需要的朋友可以參考下2023-08-08Python selenium爬取微信公眾號(hào)文章代碼詳解
這篇文章主要介紹了Python selenium爬取微信公眾號(hào)歷史文章代碼詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Python+selenium 自動(dòng)化快手短視頻發(fā)布的實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了Python+selenium 自動(dòng)化快手短視頻發(fā)布,通過(guò)調(diào)用已啟用的瀏覽器,可以實(shí)現(xiàn)直接跳過(guò)每次的登錄過(guò)程,上傳功能的使用方法通過(guò)代碼給大家介紹的也非常詳細(xì),需要的朋友可以參考下2021-10-10Python range函數(shù)之生成器函數(shù)的示例
這篇文章主要介紹了Python range函數(shù)之生成器函數(shù)的示例,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12Python 圖像處理之顏色遷移(reinhard VS welsh)
這篇文章主要介紹了分別利用reinhard算法和welsh算法實(shí)現(xiàn)圖像的顏色遷移,并對(duì)二者算法的效果進(jìn)行了對(duì)比,感興趣的小伙伴可以了解一下2021-12-12編寫(xiě)Python腳本來(lái)獲取Google搜索結(jié)果的示例
這篇文章主要介紹了編寫(xiě)Python腳本來(lái)獲取Google搜索結(jié)果的示例,也是利用Python編寫(xiě)爬蟲(chóng)的一個(gè)簡(jiǎn)單實(shí)現(xiàn),需要的朋友可以參考下2015-05-05