成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Numpy數(shù)組的索引與切片和變形拼接分裂

miracledan / 3368人閱讀

摘要:一一維數(shù)組的索引與切片對象的內(nèi)容可以通過索引或切片來訪問和修改,與中的切片操作一樣。在指定位置分裂數(shù)組本身作為一個參數(shù),分類位置構(gòu)成的列表作為第二個參數(shù)同時也可以對一維數(shù)組和多位數(shù)組進(jìn)行操作。

1.概述

今天我們來講一下Numpy數(shù)組的索引與切片,numpy數(shù)組的索引與切片和Python中的切片與索引的作用相同,可以快速的取出數(shù)據(jù),進(jìn)行下一步的運(yùn)用或者查看,但是兩種切片還有一些不同的地方。另外我們可以通過數(shù)組的變形拼接分裂快速的對數(shù)組進(jìn)行做出改變,方便我們更快的對數(shù)組進(jìn)行操作。

一、一維數(shù)組的索引與切片

ndarray對象的內(nèi)容可以通過索引或切片來訪問和修改,與 Python 中 list 的切片操作一樣。

ndarray 數(shù)組可以基于 0 - n 的下標(biāo)進(jìn)行索引,切片對象可以通過內(nèi)置的 slice 函數(shù),并設(shè)置 start, stop 及 step 參數(shù)進(jìn)行,從原數(shù)組中切割出一個新數(shù)組。

索引方式:

X[index_value]

切片方式:

X[start:stop:step]

首先創(chuàng)建一個數(shù)組

對數(shù)組進(jìn)行索引,找到索引為2和6的元素

對數(shù)組進(jìn)切片,查找從2開始到8結(jié)束,步長為2的元素。

需要注意的是,切片的結(jié)果會產(chǎn)生新的內(nèi)存地址,如果要引用切片值,需要賦值給新的變量。

二、高維數(shù)組索引&切片

與Python原生的列表、元組不同的是,Numpy數(shù)組支持多維數(shù)組的多維索引,每一個逗號, 代表索引的一個維度

索引方法:

x[維度,行,列]

x維度[列]

二維和一維數(shù)組可以不指定維度

切片方法:

x[維度的[start:stop:step],行的[start:stop:step],列的[start:stop:step]]

可以不指定步長,會默認(rèn)為1

首先設(shè)置兩個多維數(shù)組

1、索引

1.1索引出x1中第1行第1列的元素

1.2 索引出x2中第1個維度的第1行第1列的元素

2、切片

設(shè)置一個5維5行5列的np數(shù)組

2.1 切片出第二個維度中的第三行數(shù)據(jù)

2.2 切片出第三個維度中的第二行的第三個元素

2.3 切片出第二個維度中的第一行和第三行的第四個元素

切片出前兩個維度的第一行和第三行的前兩列

三、修改元素值

1、修改某一個元素

1.1設(shè)置一個數(shù)組

1.2轉(zhuǎn)換數(shù)據(jù)類型為浮點型

1.3將f1中的第三個元素改為3.14

2、修改數(shù)組中的多個元素

2.1將x3的前三個模塊的第3行的第4列的元素改為2333

四、其它索引方式

1、整數(shù)索引

如果一個 ndarray 是非元組序列,數(shù)據(jù)類型為整數(shù)或布爾值的 ndarray,或者至少一個元素為序列對象的元組,我們就能夠用它來索引 ndarray。高級索引始終返回數(shù)據(jù)的副本。與此相反,切片只提供了一個視圖。

整數(shù)索引就是兩種高級索引的類型之一,另一個高級索引方式為 布爾值索引。

整數(shù)索引有助于基于 N 維索引來獲取數(shù)組中任意元素。每個整數(shù)數(shù)組表示該維度的下標(biāo)值。當(dāng)索引的元素個數(shù)就是目標(biāo) ndarray 的維度時,會變得相當(dāng)直接。以下示例獲取了 ndarray 對象中每一行指定列的一個元素。因此,行索引包含所有行號,列索引指定要選擇的元素。

該結(jié)果包括數(shù)組中 (0,0) ,(1,1) 和 (2,0) 位置處的元素。

但如果需要的是按數(shù)字對行列同時進(jìn)行索引的而不是索引單個值的話,應(yīng)當(dāng)使用下面的方式:

也可以利用數(shù)字索引生成同樣維度的數(shù)組:

2.布爾索引

當(dāng)結(jié)果對象是布爾運(yùn)算(例如比較運(yùn)算符)的結(jié)果時,將使用此類型的高級索引。

2.1設(shè)置一個4行3列的數(shù)組

2.2查看數(shù)組中大于5的元素

2.3 將數(shù)組中大于5的元素索引出來

五、關(guān)于視圖

關(guān)于數(shù)組切片有一點很重要也非常有用,那就是數(shù)組切片返回的是數(shù)組數(shù)據(jù)的視圖,而不是數(shù)值數(shù)據(jù)的副本。這一點也是 NumPy 數(shù) 組切片和 Python 列表切片的不同之處:在 Python 列表中,切片是值的副本。

對于切片出來的視圖或視圖中索引出來的元素(其實也是一個視圖)進(jìn)行修改時,原始數(shù)據(jù)也會被改變。因此我們想要保護(hù)原始數(shù)據(jù),應(yīng)該先創(chuàng)建副本,在副本上進(jìn)行操作,以保證原始數(shù)據(jù)不被修改。

六、數(shù)組的變形拼接分裂

1、數(shù)組的變形

1.1 np.reshape()不改變數(shù)據(jù)的條件下修改形狀

示例:將一個一維數(shù)組變成3*4數(shù)組

需要注意的是:變換形狀之后的數(shù)組大小必須和原始數(shù)組相同

Xx1的數(shù)組的長度為10,無法變形為3行4列的數(shù)組,這時候就會報錯,reshape()還有一個功能,就是幫我們回去行向量和列變量。

在使用reshape()的時候,可以將其中一個維度指定為-1,這樣numpy就會自動計算出它的真實值。

1.2 np.newaxis 和reshape()方法獲取行向量和列向量功能一樣,np.newaxis方法也可以幫我們獲取行向量與列向量

行向量:

列向量

Np.newaxis()比np.reshape()更高級的是:np.newaxis是和索引切片方法一起使用的,可以制定獲取行列向量的長度,即先切片在轉(zhuǎn)換成行向量或列向量

2、數(shù)組的拼接

當(dāng)我們需要對多個數(shù)組進(jìn)行操作時,這時候就需要拼接數(shù)組了,numpy提供了對數(shù)組進(jìn)行拼接的方法

2.1 np.concatanate()

數(shù)組本身構(gòu)成的列表作為np.concatenate()的參數(shù)之一,還有一個常用的參數(shù)是axis,用來指定拼接的方向:

axis = 0 按行拼接

axis = 1 按列拼接

默認(rèn)的參數(shù)為axis = 0

按行拼接(橫向拼接)

按列拼接(縱向拼接)

2.2np.vstack()

垂直棧拼接,按行拼接,數(shù)組本身構(gòu)成的列表作為np.vstack()的參數(shù)

2.3 np.hstack()

平行棧,按列拼接,數(shù)組本身構(gòu)成的列表作為np.hstack()的參數(shù)

2.4 np.dstack()

第三維度拼接,數(shù)組本身構(gòu)成的列表作為np.dstack()的參數(shù)

3、數(shù)組的分裂

同數(shù)組的拼接一樣,在處理多個數(shù)組時,也需要將數(shù)組進(jìn)行分裂,numpy同時也提供了數(shù)組分裂的方法。

3.1 np.split()

在指定位置分裂,數(shù)組本身作為一個參數(shù),分類位置構(gòu)成的列表作為第二個參數(shù),同時split也可以對一維數(shù)組和多位數(shù)組進(jìn)行操作。

一維數(shù)組/行向量/列向量

多維數(shù)組

3.2 np.hsplit()

按列在指定位置分裂

3.3 np.vsplit()

按行在指定位置分裂

4.數(shù)組的平鋪

數(shù)據(jù)可以通過np.ravel()方法將多維的數(shù)組平鋪成一維的數(shù)組。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43607.html

相關(guān)文章

  • Javascript中魔鬼

    摘要:發(fā)生這個異常的原因就是因為在調(diào)用函數(shù)時,中的已經(jīng)不再指向?qū)ο蠖侵赶蛄巳謱ο?,由于下并沒有屬性,所以輸出。在為綁定的上下文環(huán)境之后,并不會立即執(zhí)行。方法用于檢查數(shù)組中的是否存在符合條件的項,存在則返回否則返回。 寫作意圖 這篇文章用于總結(jié)一些javascript語言中常見的易混淆點。 call | apply | bind 在js中,最詭異莫測的莫過于this了,理解的不夠深入或是應(yīng)...

    daydream 評論0 收藏0
  • 一文帶你斬殺Python之Numpy??Pandas全部操作【全網(wǎng)最詳細(xì)】???

    目錄Numpy簡介Numpy操作集合1、不同維度數(shù)據(jù)的表示1.1 一維數(shù)據(jù)的表示1.2 二維數(shù)據(jù)的表示1.3 三維數(shù)據(jù)的表示2、 為什么要使用Numpy2.1、Numpy的ndarray具有廣播功能2.2 Numpy數(shù)組的性能比Python原生數(shù)據(jù)類型高3 ndarray的屬性和基本操作3.1 ndarray的基本屬性3.2 ndarray元素類型3.3 創(chuàng)建ndarray的方式3.4 ndarr...

    asoren 評論0 收藏0
  • NumPy 基本切片索引

    摘要:有三種可用的索引字段訪問,基本切片,高級索引。基本切片和索引基本切片將的切片基本概念擴(kuò)展到維?;厩衅傻乃袛?shù)組始終是原始數(shù)組的視圖。序列切片的標(biāo)準(zhǔn)規(guī)則適用于基于每維的基本切片包括使用步驟索引。因此,在基本切片下的行為。 https://docs.scipy.org/doc/nu... 索引 ndarrays可以使用標(biāo)準(zhǔn)Python x[obj]語法對其進(jìn)行索引 ,其中x是數(shù)組,o...

    lemon 評論0 收藏0
  • Numpy 中文用戶指南 2. 快速啟動

    摘要:注意和標(biāo)準(zhǔn)庫類并不相同,后者只處理一維數(shù)組和提供少量功能。然而,指定參數(shù)你可以吧運(yùn)算應(yīng)用到數(shù)組指定的軸上通用函數(shù)提供常見的數(shù)學(xué)函數(shù)如和。在中,這些叫作通用函數(shù)。函數(shù),另一方面,將一維數(shù)組以行組合成二維數(shù)組。 原文:Quickstart tutorial 譯者:Reverland 來源:試驗性NumPy教程(譯) 2.1 先決條件 在閱讀這個教程之前,你多少需要知道點python。如...

    shiina 評論0 收藏0
  • Python學(xué)習(xí)之路21-序列構(gòu)成數(shù)組

    摘要:第行把具名元組以的形式返回。對序列使用和通常號兩側(cè)的序列由相同類型的數(shù)據(jù)所構(gòu)成當(dāng)然不同類型的也可以相加,返回一個新序列。從上面的結(jié)果可以看出,它雖拋出了異常,但仍完成了操作查看字節(jié)碼并不難,而且它對我們了解代碼背后的運(yùn)行機(jī)制很有幫助。 《流暢的Python》筆記。接下來的三篇都是關(guān)于Python的數(shù)據(jù)結(jié)構(gòu),本篇主要是Python中的各序列類型 1. 內(nèi)置序列類型概覽 Python標(biāo)準(zhǔn)庫...

    ralap 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<