Python?where函數(shù)保姆級(jí)使用教程
你應(yīng)該聽說過,應(yīng)用Python,可以讓你處理一天的重復(fù)工作量,縮短到幾分鐘甚至更短。從此解放上班時(shí)間,研究更多更有效率的工作方法。進(jìn)一步提升工作效率,讓工作更出彩。這不是廣告,這是實(shí)錘圖片。
本文和你一起探索Python常用函數(shù)合集,讓你以最短的時(shí)間明白這些函數(shù)的原理。也可以利用碎片化的時(shí)間鞏固這些函數(shù),讓你在處理工作過程中更高效。
一、where函數(shù)的定義
where函數(shù)是numpy庫中的,通常需要先加載numpy庫,再調(diào)用該函數(shù)。函數(shù)的基本調(diào)用語法有兩種,一種是:
import numpy as np np.where(arry)
此時(shí),np.where函數(shù)輸出arry中“真”值的坐標(biāo)(‘真’也可以理解為非0)。或者說np.where函數(shù)從arry中返回滿足特定條件的元素。比如,它會(huì)返回滿足特定條件數(shù)值的索引位置。
另一種是:
import numpy as np np.where(cond, x, y)
此時(shí),np.where函數(shù)滿足cond條件輸出x,不滿足輸出y。為了讓大家對(duì)where函數(shù)定義有更清晰的理解,接下來以具體實(shí)例進(jìn)行闡述,方便大家理解記憶。
二、where函數(shù)實(shí)例
找出數(shù)列中大于某個(gè)數(shù)的位置索引
y = np.array([1, 5, 6, 8, 1, 7, 3, 6, 9]) print(np.where(y>5))
得到結(jié)果:
(array([2, 3, 5, 7, 8], dtype=int64),)
此時(shí),np.where函數(shù)返回?cái)?shù)值大于5的索引位置。
數(shù)列中大于5取‘m_5’否則取’lq_5’
y = np.array(range(1, 10)) print(y) print(np.where(y>5, 'm_5', 'lq_5'))
得到結(jié)果:
[1 2 3 4 5 6 7 8 9]
['lq_5' 'lq_5' 'lq_5' 'lq_5' 'lq_5' 'm_5' 'm_5' 'm_5' 'm_5']
y是一個(gè)初始值為1,終值為9,步長(zhǎng)為1的等差數(shù)列。此時(shí),np.where函數(shù)滿足y>5輸出’m_5’,不滿足輸出’lq_5’。
數(shù)列中小于5取一個(gè)值否則取另一個(gè)值
print(np.arange(10)) print(np.where(np.arange(10)<5, '吃蘋果', '吃榴蓮'))
得到結(jié)果:
[0 1 2 3 4 5 6 7 8 9]
[‘吃蘋果’ ‘吃蘋果’ ‘吃蘋果’ ‘吃蘋果’ ‘吃蘋果’ ‘吃榴蓮’ ‘吃榴蓮’ ‘吃榴蓮’ ‘吃榴蓮’ ‘吃榴蓮’]
此時(shí),np.where函數(shù)滿足np.arange(10)中數(shù)值小于5輸出’吃蘋果’,不滿足輸出’吃榴蓮’。
數(shù)列中是2的倍數(shù)取一個(gè)值否則取另一個(gè)值
y = np.array(range(1, 10)) print(y) print(np.where(np.mod(y, 2)==0, '2b', 'n_2b'))
得到結(jié)果:
[1 2 3 4 5 6 7 8 9]
['n_2b' '2b' 'n_2b' '2b' 'n_2b' '2b' 'n_2b' '2b' 'n_2b']
此時(shí),np.where函數(shù)滿足y中數(shù)值除以2余數(shù)為0輸出’2b’,不滿足輸出’n_2b’。
找出數(shù)據(jù)框中非0數(shù)據(jù)
x = np.array([[0, 1, 2], [3, 0, 0], [6, 0, 8]]) print(x[np.where(x)])
得到結(jié)果:
[1 2 3 6 8]
此時(shí),np.where函數(shù)取出x中所有非0數(shù),生成一個(gè)新的數(shù)列。
到此這篇關(guān)于Python where函數(shù)保姆級(jí)使用教程的文章就介紹到這了,更多相關(guān)Python where函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python利用pyodbc庫將文件信息插入Access數(shù)據(jù)庫
在日常編程工作中,我們經(jīng)常需要處理文件和文件夾,所以本文將介紹如何使用Python編程語言和wxPython庫創(chuàng)建一個(gè)簡(jiǎn)單的文件瀏覽器界面,使用戶能夠選擇文件夾并將文件信息插入到Access數(shù)據(jù)庫中,需要的可以參考下2023-08-08
Python實(shí)現(xiàn)圖的廣度和深度優(yōu)先路徑搜索算法
圖是一種抽象數(shù)據(jù)結(jié)構(gòu),本質(zhì)和樹結(jié)構(gòu)是一樣的。圖與樹相比較,圖具有封閉性,可以把樹結(jié)構(gòu)看成是圖結(jié)構(gòu)的前生。本文將利用Python實(shí)現(xiàn)圖的廣度和深度優(yōu)先路徑搜索算法,感興趣的可以學(xué)習(xí)一下2022-04-04
TF-IDF與余弦相似性的應(yīng)用(二) 找出相似文章
這篇文章主要為大家詳細(xì)介紹了TF-IDF與余弦相似性的應(yīng)用,找出相似文章,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Python中動(dòng)態(tài)檢測(cè)編碼chardet的使用教程
最近利用python抓取一些網(wǎng)上的數(shù)據(jù),遇到了編碼的問題。非常頭痛,幸運(yùn)的是找到了解決的方法,下面這篇文章主要跟大家介紹了關(guān)于Python中動(dòng)態(tài)檢測(cè)編碼chardet的使用方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07
使用Python實(shí)現(xiàn)一個(gè)蔡徐坤大戰(zhàn)籃球的小游戲(推薦)
這篇文章主要介紹了用Python實(shí)現(xiàn)一個(gè)蔡徐坤大戰(zhàn)籃球的小游戲,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
Python多線程通信queue隊(duì)列用法實(shí)例分析
這篇文章主要介紹了Python多線程通信queue隊(duì)列用法,結(jié)合實(shí)例形式分析了Python多線程通信queue隊(duì)列相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03
解決Jupyter notebook更換主題工具欄被隱藏及添加目錄生成插件問題
這篇文章主要介紹了解決Jupyter notebook更換主題工具欄被隱藏及添加目錄生成插件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04

