欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

numpy中實(shí)現(xiàn)ndarray數(shù)組返回符合特定條件的索引方法

 更新時(shí)間:2018年04月17日 09:15:25   作者:wen123qiang  
下面小編就為大家分享一篇numpy中實(shí)現(xiàn)ndarray數(shù)組返回符合特定條件的索引方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

在numpy的ndarray類型中,似乎沒有直接返回特定索引的方法,我只找到了where函數(shù),但是where函數(shù)對于尋找某個(gè)特定值對應(yīng)的索引很有用,對于返回一定區(qū)間內(nèi)值的索引不是很有效,至少我沒有弄明白應(yīng)該如何操作尷尬。下面先說一下where函數(shù)的用法吧。

(1)where函數(shù)的使用場景:

例如現(xiàn)在我生成了一個(gè)數(shù)組:

import numpy as np 
arr=np.array([1,1,1,134,45,3,46,45,65,3,23424,234,12,12,3,546,1,2]) 

現(xiàn)在arr是一個(gè)含有18個(gè)元素的ndarray類型的數(shù)組,后面就用數(shù)組來稱呼它吧。假如我想返回?cái)?shù)組中所有元素值為3所對應(yīng)的索引位置,那么通過where函數(shù)可以很輕松地完成。

print np.where(arr==3) 

它會返回一個(gè)包含所有值為3對應(yīng)的索引位置的元組,如下圖:

可以看到在索引為5、9、14的地方所對應(yīng)的元素值為3。通過這樣的方式可以輕松達(dá)到目的。但是對于一定變化范圍內(nèi)的索引這樣就不行了。下面的方法是自己想出來的折衷辦法,比較笨,高手清噴。

(2)通過一個(gè)輔助的數(shù)組來解決一定范圍內(nèi)值索引的查找

我們建一個(gè)標(biāo)識元素索引的數(shù)組,然后通過它來顯示符合條件的元素對應(yīng)的索引。還是剛才的數(shù)組,假如我現(xiàn)在要返回元素值在3到100之間值的索引。我可以生成一個(gè)和arr相同大小的數(shù)組,然后首先通過一次篩選找到大于3的元素對應(yīng)索引的數(shù)組,繼而在其中再次篩選,最終得到想要的結(jié)果。代碼如下:

b=np.arange(len(arr))#生成和arr相同長度的數(shù)組 
c=b[arr>3]#c存放的就是arr中大于3的元素對應(yīng)的索引 
#最后通過遍歷c數(shù)組,選擇3到100之間的值打印出來 
for i in range(len(c)): 
 if arr[c[i]]<100: 
  print c[i], 

下面看一下執(zhí)行的效果:

可以看到程序?qū)⑺薪橛?和100之間的元素對應(yīng)的索引值打了出來,如果想同時(shí)獲得索引值和相應(yīng)的元素,只需將上面的“print c[i]”, 替換為 “print c[i],arr[c[i]]”即可。

當(dāng)然這種方法也適用于選擇某個(gè)特定值對應(yīng)的索引,例如我想找到所有3對應(yīng)的位置,可以用print b[arr==3]即可打印出所有值為3的元素所對應(yīng)的索引。其實(shí)不論怎么做,都是用到了數(shù)組進(jìn)行關(guān)系運(yùn)算后生成布爾數(shù)組,然后讓數(shù)組中為True的地方進(jìn)行顯示。

當(dāng)然還可以通過兩次進(jìn)行篩選,分別篩選出大于3的元素和小于100的元素對應(yīng)的索引數(shù)組,然后兩個(gè)數(shù)組做交集處理,在numpy中有一個(gè)intersect1d函數(shù)可以進(jìn)行這樣的運(yùn)算,但是仍然麻煩。目前只能想到這些辦法,不知道有哪位高手有更好的方法,歡迎大家一起交流一下。

以上這篇numpy中實(shí)現(xiàn)ndarray數(shù)組返回符合特定條件的索引方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)現(xiàn)中文輸出的兩種方法

    python實(shí)現(xiàn)中文輸出的兩種方法

    這篇文章主要介紹了python實(shí)現(xiàn)中文輸出的兩種方法,實(shí)例分析了Python操作中文輸出的技巧,需要的朋友可以參考下
    2015-05-05
  • 淺談配置OpenCV3 + Python3的簡易方法(macOS)

    淺談配置OpenCV3 + Python3的簡易方法(macOS)

    下面小編就為大家分享一篇淺談配置OpenCV3 + Python3的簡易方法(macOS),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python自動重試第三方包retrying模塊的方法

    python自動重試第三方包retrying模塊的方法

    retrying是一個(gè)python的重試包,可以用來自動重試一些可能運(yùn)行失敗的程序段。這篇文章主要介紹了python自動重試第三方包retrying的方法,需要的朋友參考下吧
    2018-04-04
  • python中open用法的使用指南

    python中open用法的使用指南

    在Python中,open()函數(shù)用于打開文件,并返回一個(gè)文件對象,可以使用該對象來讀取或?qū)懭胛募?shù)據(jù),本文主要介紹了python中open用法的使用指南,感興趣的可以了解一下
    2023-12-12
  • Python MySQLdb模塊連接操作mysql數(shù)據(jù)庫實(shí)例

    Python MySQLdb模塊連接操作mysql數(shù)據(jù)庫實(shí)例

    這篇文章主要介紹了Python MySQLdb模塊連接操作mysql數(shù)據(jù)庫實(shí)例,本文直接給出操作mysql代碼實(shí)例,包含創(chuàng)建表、插入數(shù)據(jù)、插入多條數(shù)據(jù)、查詢數(shù)據(jù)等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • python遞歸全排列實(shí)現(xiàn)方法

    python遞歸全排列實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了python遞歸全排列實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python圖像運(yùn)算之腐蝕與膨脹詳解

    Python圖像運(yùn)算之腐蝕與膨脹詳解

    這篇文章將詳細(xì)講解開始圖像形態(tài)學(xué)知識,主要介紹圖像腐蝕處理和膨脹處理。文中的示例代碼簡潔易懂,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧
    2022-05-05
  • 詳解python和matlab的優(yōu)勢與區(qū)別

    詳解python和matlab的優(yōu)勢與區(qū)別

    在本文中小編給大家分享的是關(guān)于python和matlab的優(yōu)勢與區(qū)別的知識點(diǎn)以及實(shí)例代碼,需要的朋友們參考學(xué)習(xí)下。
    2019-06-06
  • python中調(diào)試或排錯(cuò)的五種方法示例

    python中調(diào)試或排錯(cuò)的五種方法示例

    這篇文章主要給大家介紹了關(guān)于python中調(diào)試或排錯(cuò)的五種方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python抓取聚劃算商品分析頁面獲取商品信息并以XML格式保存到本地

    Python抓取聚劃算商品分析頁面獲取商品信息并以XML格式保存到本地

    這篇文章主要為大家詳細(xì)介紹了Python抓取聚劃算商品分析頁面獲取商品信息,并以XML格式保存到本地的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評論