最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?np.where()的詳解以及代碼應(yīng)用

 更新時間:2022年08月23日 09:09:46   作者:Kingyanhui  
numpy里有一個非常神奇的函數(shù)叫做np.where()函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python?np.where()的詳解以及代碼應(yīng)用的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

np.where共兩種用法:

第一種np.where(condition, x, y),即condition為條件,當(dāng)滿足條件輸出為x,不滿足條件則輸出y.直接上代碼:

a = np.arange(10)
//array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(np.where(a > 5, 1, -1))
//array([-1, -1, -1, -1, -1, -1,  1,  1,  1,  1]) 

上面的挺好理解的,但是官網(wǎng)的例子不是太好理解,如下所示:

np.where([[True,False], [True,True]],   
			 [[1,2], [3,4]],
             [[9,8], [7,6]])
// 輸出 array([[1, 8], [3, 4]])

可以這么理解,第一行的bool值表示條件,它表示是否取值的意思,首先看[True,False],即第一的True值表示第一行取數(shù)值第一行的[1, 2]中的1,而不取下面的9,False表示不取第一行[1, 2]中的2,而取第二行[9, 8]中的8.下面同理得[3, 4].
為了方便理解再舉一個例子:

a = 10
>>> np.where([[a > 5,a < 5], [a == 10,a == 7]],
             [["chosen","not chosen"], ["chosen","not chosen"]],
             [["not chosen","chosen"], ["not chosen","chosen"]])

//array([['chosen', 'chosen'], ['chosen', 'chosen']], dtype='<U10')

第一行a>5True,則取第一行的第一個值,a<5取第二行的第二個值,下面也同理.

理解完第一種方法后,再來看np.where第二種方法:

即np.where(condition),只有條件 (condition),沒有x和y,則輸出滿足條件 (即非0) 元素的坐標(biāo) (等價于numpy.nonzero)。這里的坐標(biāo)以tuple的形式給出,通常原數(shù)組有多少維,輸出的tuple中就包含幾個數(shù)組,分別對應(yīng)符合條件元素的各維坐標(biāo)。

>>> a = np.array([2,4,6,8,10])
>>> np.where(a > 5)			
//(array([2, 3, 4]),)   返回索引值
>>> a[np.where(a > 5)]  			
//array([ 6,  8, 10]) 返回元素值,即a[索引]

舉一個代碼例子,也是我遇到的:

a = array([[0., 1.],
  	       [0., 1.],
  	       [0., 1.],
  	       [0., 1.],
  	       [0., 1.],
  	       [0., 1.],
  	       [0., 1.],
  	       [0., 1.],
  	       [1., 0.],
  	       [0., 1.],
  	       [0., 1.],
  	       [0., 1.],
  	       [1., 0.],
  	       [1., 0.],
  	       [0., 1.],
  	       [0., 1.],
  	       [1., 0.],
  	       [0., 1.],
  	       [1., 0.],
  	       [0., 1.]])
np.where(a == 1)
//(array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
//        17, 18, 19], dtype=int64),
// array([1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1],
//       dtype=int64))

返回的兩個array數(shù)組分表示第幾行的第幾個值為1,所以結(jié)果中的第一個array數(shù)組表示行索引,第二個array數(shù)組表示列索引也就是1的碎銀索引.

附:np.where()多條件用法

1.np.where(condition,x,y) 當(dāng)where內(nèi)有三個參數(shù)時,第一個參數(shù)表示條件,當(dāng)條件成立時where方法返回x,當(dāng)條件不成立時where返回y

2.np.where(condition) 當(dāng)where內(nèi)只有一個參數(shù)時,那個參數(shù)表示條件,當(dāng)條件成立時,where返回的是每個符合condition條件元素的坐標(biāo),返回的是以元組的形式

3.多條件時condition,&表示與,|表示或。如a = np.where((0<a)&(a<5), x, y),當(dāng)0<a與a<5滿足時,返回x的值,當(dāng)0<a與a<5不滿足時,返回y的值。注意x, y必須和a保持相同尺寸

例如:

import?numpy?as np

data = np.array([[0, 2, 0],
? ? ? ? ? ? ? ? ? ? ? ? ? ?[3, 1, 2],
? ? ? ? ? ? ? ? ? ? ? ? ? ?[0, 4, 0]])
new_data = np.where((data>= 0) & (data<=2), np.ones_like(data), np.zeros_like(data))
print(new_data)

結(jié)果:

         [[1 1 1]
          [0 1 1]
          [1 0 1]]

從中可以看出data中每個元素只要滿足data>=0并且data<=2, 滿足就返回np.ones_like(data)對應(yīng)坐標(biāo)的值,不滿足就返回np.zeros_like(data)對應(yīng)坐標(biāo)的值。當(dāng)然x , y可以換成其他的值,只要與條件相同尺寸就可以。

總結(jié)

到此這篇關(guān)于Python np.where()詳解以及代碼應(yīng)用的文章就介紹到這了,更多相關(guān)np.where()詳解及應(yīng)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Matlab、Python為工具解析數(shù)據(jù)可視化之美

    Matlab、Python為工具解析數(shù)據(jù)可視化之美

    下面介紹一些數(shù)據(jù)可視化的作品(包含部分代碼),主要是地學(xué)領(lǐng)域,可遷移至其他學(xué)科,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-11-11
  • python socket 聊天室實例代碼詳解

    python socket 聊天室實例代碼詳解

    在本篇文章里小編給大家整理了關(guān)于python socket 聊天室的相關(guān)知識點,需要的朋友們參考下。
    2019-11-11
  • Python語法def語句及復(fù)雜用法實例探究

    Python語法def語句及復(fù)雜用法實例探究

    在 Python 中,def?是用于定義函數(shù)的關(guān)鍵字,本文將深入介紹def的用法和特點,詳細(xì)說明如何定義函數(shù)、傳遞參數(shù)、返回值以及更復(fù)雜的用法
    2024-01-01
  • 解析Python中的生成器及其與迭代器的差異

    解析Python中的生成器及其與迭代器的差異

    生成器是一種特殊的迭代器,而反過來說則就不對了,迭代器在Python中是一個更抽象的概念,以下我們就來詳細(xì)解析Python中的生成器及其與迭代器的差異
    2016-06-06
  • python pandas模塊基礎(chǔ)學(xué)習(xí)詳解

    python pandas模塊基礎(chǔ)學(xué)習(xí)詳解

    這篇文章主要介紹了python pandas模塊基礎(chǔ)學(xué)習(xí)詳解的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python 窮舉指定長度的密碼例子

    python 窮舉指定長度的密碼例子

    這篇文章主要介紹了python 窮舉指定長度的密碼例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python項目127.0.0.1:5000訪問失敗問題解決

    python項目127.0.0.1:5000訪問失敗問題解決

    Windows環(huán)境下啟動python項目,接口訪問失敗,本文給大家分享python項目127.0.0.1:5000訪問失敗問題解決方法,感興趣的朋友跟隨小編一起看看吧
    2023-09-09
  • CentOS 7下Python 2.7升級至Python3.6.1的實戰(zhàn)教程

    CentOS 7下Python 2.7升級至Python3.6.1的實戰(zhàn)教程

    Centos是目前最為流行的Linux服務(wù)器系統(tǒng),其默認(rèn)的Python 2.x,這篇文章主要給大家分享了關(guān)于在CentOS 7下Python 2.7升級至Python3.6.1的實戰(zhàn)教程,文中將升級的步驟一步步的介紹的非常詳細(xì),對大家的理解和學(xué)習(xí)具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-07-07
  • Python一個簡單的通信程序(客戶端 服務(wù)器)

    Python一個簡單的通信程序(客戶端 服務(wù)器)

    今天小編就為大家分享一篇關(guān)于Python一個簡單的通信程序(客戶端 服務(wù)器),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 如何基于matlab相機標(biāo)定導(dǎo)出xml文件

    如何基于matlab相機標(biāo)定導(dǎo)出xml文件

    這篇文章主要介紹了如何基于matlab相機標(biāo)定導(dǎo)出xml文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11

最新評論

勐海县| 大英县| 成都市| 镇坪县| 白银市| 阿拉善盟| 靖远县| 兴文县| 司法| 嘉祥县| 汽车| 中山市| 万宁市| 邓州市| 延寿县| 炎陵县| 宝鸡市| 阳山县| 南华县| 迁安市| 饶阳县| 满洲里市| 高要市| 阳朔县| 涟水县| 富裕县| 正安县| 金川县| 锡林浩特市| 开封县| 新津县| 德州市| 太仆寺旗| 肥西县| 平谷区| 安西县| 理塘县| 余江县| 乌拉特中旗| 祁门县| 内黄县|