程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python where函數怎麼使用

編輯:Python

Python where函數怎麼使用

這篇“Python where函數怎麼使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Python where函數怎麼使用”文章吧。

一、where函數的定義

where函數是numpy庫中的,通常需要先加載numpy庫,再調用該函數。函數的基本調用語法有兩種,一種是:

import numpy as npnp.where(arry)

此時,np.where函數輸出arry中“真”值的坐標(‘真’也可以理解為非0)。或者說np.where函數從arry中返回滿足特定條件的元素。比如,它會返回滿足特定條件數值的索引位置。

另一種是:

import numpy as npnp.where(cond, x, y)

此時,np.where函數滿足cond條件輸出x,不滿足輸出y。為了讓大家對where函數定義有更清晰的理解,接下來以具體實例進行闡述,方便大家理解記憶。

二、where函數實例

找出數列中大於某個數的位置索引

y = np.array([1, 5, 6, 8, 1, 7, 3, 6, 9])print(np.where(y>5))

得到結果:

(array([2, 3, 5, 7, 8], dtype=int64),)

此時,np.where函數返回數值大於5的索引位置。

數列中大於5取‘m_5’否則取’lq_5’

y = np.array(range(1, 10))print(y)print(np.where(y>5, 'm_5', 'lq_5'))

得到結果:

[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是一個初始值為1,終值為9,步長為1的等差數列。此時,np.where函數滿足y>5輸出’m_5’,不滿足輸出’lq_5’。

數列中小於5取一個值否則取另一個值

print(np.arange(10))print(np.where(np.arange(10)<5, '吃蘋果', '吃榴蓮'))

得到結果:

[0 1 2 3 4 5 6 7 8 9]

[&lsquo;吃蘋果&rsquo; &lsquo;吃蘋果&rsquo; &lsquo;吃蘋果&rsquo; &lsquo;吃蘋果&rsquo; &lsquo;吃蘋果&rsquo; &lsquo;吃榴蓮&rsquo; &lsquo;吃榴蓮&rsquo; &lsquo;吃榴蓮&rsquo; &lsquo;吃榴蓮&rsquo; &lsquo;吃榴蓮&rsquo;]

此時,np.where函數滿足np.arange(10)中數值小於5輸出&rsquo;吃蘋果&rsquo;,不滿足輸出&rsquo;吃榴蓮&rsquo;。

數列中是2的倍數取一個值否則取另一個值

y = np.array(range(1, 10))print(y)print(np.where(np.mod(y, 2)==0, '2b', 'n_2b'))

得到結果:

[1 2 3 4 5 6 7 8 9]
['n_2b' '2b' 'n_2b' '2b' 'n_2b' '2b' 'n_2b' '2b' 'n_2b']

此時,np.where函數滿足y中數值除以2余數為0輸出&rsquo;2b&rsquo;,不滿足輸出&rsquo;n_2b&rsquo;。

找出數據框中非0數據&zwj;

x = np.array([[0, 1, 2], [3, 0, 0], [6, 0, 8]])print(x[np.where(x)])

得到結果:

[1 2 3 6 8]

此時,np.where函數取出x中所有非0數,生成一個新的數列。

以上就是關於“Python where函數怎麼使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速雲行業資訊頻道。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved