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

深入了解NumPy 高級索引

 更新時間:2020年07月24日 16:13:13   作者:菜鳥教程  
這篇文章主要介紹了NumPy 高級索引的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

NumPy 比一般的 Python 序列提供更多的索引方式。除了之前看到的用整數(shù)和切片的索引外,數(shù)組可以由整數(shù)數(shù)組索引、布爾索引及花式索引。

整數(shù)數(shù)組索引

以下實例獲取數(shù)組中(0,0),(1,1)和(2,0)位置處的元素。

import numpy as np 
 
x = np.array([[1, 2], [3, 4], [5, 6]]) 
y = x[[0,1,2], [0,1,0]] 
print (y)

輸出結(jié)果為:

[1  4  5]

以下實例獲取了 4X3 數(shù)組中的四個角的元素。 行索引是 [0,0] 和 [3,3],而列索引是 [0,2] 和 [0,2]。

import numpy as np 
 
x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]]) 
print ('我們的數(shù)組是:' )
print (x)
print ('\n')
rows = np.array([[0,0],[3,3]]) 
cols = np.array([[0,2],[0,2]]) 
y = x[rows,cols] 
print ('這個數(shù)組的四個角元素是:')
print (y)

輸出結(jié)果為:

我們的數(shù)組是:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]


這個數(shù)組的四個角元素是:
[[ 0  2]
 [ 9 11]]

返回的結(jié)果是包含每個角元素的 ndarray 對象。

可以借助切片 : 或 … 與索引數(shù)組組合。如下面例子:

import numpy as np
 
a = np.array([[1,2,3], [4,5,6],[7,8,9]])
b = a[1:3, 1:3]
c = a[1:3,[1,2]]
d = a[...,1:]
print(b)
print(c)
print(d)

輸出結(jié)果為:

[[5 6]
 [8 9]]
[[5 6]
 [8 9]]
[[2 3]
 [5 6]
 [8 9]]

布爾索引

我們可以通過一個布爾數(shù)組來索引目標(biāo)數(shù)組。

布爾索引通過布爾運(yùn)算(如:比較運(yùn)算符)來獲取符合指定條件的元素的數(shù)組。

以下實例獲取大于 5 的元素:

import numpy as np 
 
x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]]) 
print ('我們的數(shù)組是:')
print (x)
print ('\n')
# 現(xiàn)在我們會打印出大于 5 的元素 
print ('大于 5 的元素是:')
print (x[x > 5])

輸出結(jié)果為:

我們的數(shù)組是:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]


大于 5 的元素是:
[ 6  7  8  9 10 11]

以下實例使用了 ~(取補(bǔ)運(yùn)算符)來過濾 NaN。

import numpy as np 
 
a = np.array([np.nan, 1,2,np.nan,3,4,5]) 
print (a[~np.isnan(a)])

輸出結(jié)果為:

[ 1.   2.   3.   4.   5.]

以下實例演示如何從數(shù)組中過濾掉非復(fù)數(shù)元素。

import numpy as np 
 
a = np.array([1, 2+6j, 5, 3.5+5j]) 
print (a[np.iscomplex(a)])

輸出如下:

[2.0+6.j  3.5+5.j]

花式索引

花式索引指的是利用整數(shù)數(shù)組進(jìn)行索引。

花式索引根據(jù)索引數(shù)組的值作為目標(biāo)數(shù)組的某個軸的下標(biāo)來取值。對于使用一維整型數(shù)組作為索引,如果目標(biāo)是一維數(shù)組,那么索引的結(jié)果就是對應(yīng)位置的元素;如果目標(biāo)是二維數(shù)組,那么就是對應(yīng)下標(biāo)的行。

花式索引跟切片不一樣,它總是將數(shù)據(jù)復(fù)制到新數(shù)組中。

1、傳入順序索引數(shù)組

import numpy as np 
 
x=np.arange(32).reshape((8,4))
print (x[[4,2,1,7]])

輸出結(jié)果為:

[[16 17 18 19]
 [ 8  9 10 11]
 [ 4  5  6  7]
 [28 29 30 31]]

2、傳入倒序索引數(shù)組

import numpy as np 
 
x=np.arange(32).reshape((8,4))
print (x[[-4,-2,-1,-7]])

輸出結(jié)果為:

[[16 17 18 19]
 [24 25 26 27]
 [28 29 30 31]
 [ 4  5  6  7]]

3、傳入多個索引數(shù)組(要使用np.ix_)

import numpy as np 
 
x=np.arange(32).reshape((8,4))
print (x[np.ix_([1,5,7,2],[0,3,1,2])])

輸出結(jié)果為:

[[ 4  7  5  6]
 [20 23 21 22]
 [28 31 29 30]
 [ 8 11  9 10]]

以上就是深入了解NumPy 高級索引的詳細(xì)內(nèi)容,更多關(guān)于NumPy 高級索引的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中條件選擇和循環(huán)語句使用方法介紹

    Python中條件選擇和循環(huán)語句使用方法介紹

    Python中也存在條件選擇和循環(huán)語句,其風(fēng)格和C語言、java的很類似,不過在書寫語法上還是存在一些區(qū)別的,接下來同大家一起了解下,希望可以幫助你更好的學(xué)習(xí)python,感興趣的你可不要錯過了哈
    2013-03-03
  • Python基本知識點總結(jié)

    Python基本知識點總結(jié)

    這篇文章主要介紹了Python基本知識點總結(jié),Python基本知識,Python字符串,Python函數(shù),Python模塊,Python創(chuàng)建類,Python類的繼承,Python重載,Python單下劃線說明,Python雙下劃線說明,Python頭尾雙下劃線說明,需要的朋友可以參考下
    2022-04-04
  • 解決pyttsx3無法封裝的問題

    解決pyttsx3無法封裝的問題

    今天小編就為大家分享一篇解決pyttsx3無法封裝的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 如何使用PyCharm將代碼上傳到GitHub上(圖文詳解)

    如何使用PyCharm將代碼上傳到GitHub上(圖文詳解)

    這篇文章主要介紹了如何使用PyCharm將代碼上傳到GitHub上(圖文詳解),文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python寫入已存在的excel數(shù)據(jù)實例

    python寫入已存在的excel數(shù)據(jù)實例

    下面小編就為大家分享一篇python寫入已存在的excel數(shù)據(jù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python 集合 并集、交集 Series list set 轉(zhuǎn)換的實例

    python 集合 并集、交集 Series list set 轉(zhuǎn)換的實例

    今天小編就為大家分享一篇python 集合 并集、交集 Series list set 轉(zhuǎn)換的實例。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Pycharm配置PyQt5環(huán)境的教程

    Pycharm配置PyQt5環(huán)境的教程

    這篇文章主要介紹了Pycharm配置PyQt5環(huán)境的教程,本文通過圖文實例詳解給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • pandas進(jìn)階教程之Dataframe的apply方法

    pandas進(jìn)階教程之Dataframe的apply方法

    DataFrame中的apply方法就是將函數(shù)應(yīng)用到由列或行形成的一維數(shù)組上,下面這篇文章主要給大家介紹了關(guān)于pandas進(jìn)階教程之Dataframe的apply方法的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 基于python對B站收藏夾按照視頻發(fā)布時間進(jìn)行排序的問題

    基于python對B站收藏夾按照視頻發(fā)布時間進(jìn)行排序的問題

    這篇文章主要介紹了基于python對B站收藏夾按照視頻發(fā)布時間進(jìn)行排序,在實現(xiàn)過程中中間程序可能因為各種原因掛掉,因此在中間加入了儲存中間狀態(tài)的功能,否則每次掛掉都要重新爬速度非常慢,本文給大家介紹具體使用方法,一起看看吧
    2021-05-05
  • Python異常繼承關(guān)系和自定義異常實現(xiàn)代碼實例

    Python異常繼承關(guān)系和自定義異常實現(xiàn)代碼實例

    這篇文章主要介紹了Python異常繼承關(guān)系和自定義異常實現(xiàn)代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02

最新評論