国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

miracledan / 3306人閱讀

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

1.概述

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

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

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

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

索引方式:

X[index_value]

切片方式:

X[start:stop:step]

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

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

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

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

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

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

索引方法:

x[維度,行,列]

x維度[列]

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

切片方法:

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

可以不指定步長(zhǎng),會(huì)默認(rèn)為1

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

1、索引

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

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

2、切片

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

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

2.2 切片出第三個(gè)維度中的第二行的第三個(gè)元素

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

切片出前兩個(gè)維度的第一行和第三行的前兩列

三、修改元素值

1、修改某一個(gè)元素

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

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

1.3將f1中的第三個(gè)元素改為3.14

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

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

四、其它索引方式

1、整數(shù)索引

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

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

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

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

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

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

2.布爾索引

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

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

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

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

五、關(guān)于視圖

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

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

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

1、數(shù)組的變形

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

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

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

Xx1的數(shù)組的長(zhǎng)度為10,無法變形為3行4列的數(shù)組,這時(shí)候就會(huì)報(bào)錯(cuò),reshape()還有一個(gè)功能,就是幫我們回去行向量和列變量。

在使用reshape()的時(shí)候,可以將其中一個(gè)維度指定為-1,這樣numpy就會(huì)自動(dòng)計(jì)算出它的真實(shí)值。

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

行向量:

列向量

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

2、數(shù)組的拼接

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

2.1 np.concatanate()

數(shù)組本身構(gòu)成的列表作為np.concatenate()的參數(shù)之一,還有一個(gè)常用的參數(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ù)組的拼接一樣,在處理多個(gè)數(shù)組時(shí),也需要將數(shù)組進(jìn)行分裂,numpy同時(shí)也提供了數(shù)組分裂的方法。

3.1 np.split()

在指定位置分裂,數(shù)組本身作為一個(gè)參數(shù),分類位置構(gòu)成的列表作為第二個(gè)參數(shù),同時(shí)split也可以對(duì)一維數(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/43607.html

相關(guān)文章

  • Javascript中魔鬼

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

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

    目錄Numpy簡(jiǎn)介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 評(píng)論0 收藏0
  • NumPy 基本切片索引

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

    lemon 評(píng)論0 收藏0
  • Numpy 中文用戶指南 2. 快速啟動(dòng)

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

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

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

    ralap 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<