小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

D02 Numpy常用函數(shù),如何優(yōu)雅的遍歷一個多維數(shù)組?

 我的人生寶庫 2019-12-14

  • Python

  • 數(shù)據(jù)挖掘基礎(chǔ)

  • Numpy


如何優(yōu)雅的遍歷一個數(shù)組,使用嵌套for循環(huán)嗎?

當(dāng)我們想要遍歷一個多維數(shù)組的時候,如果通過不停的使用循環(huán)去遍歷,這會讓我們的代碼可讀性與性能都變得很差,numpy提供了一個函數(shù)nditer,以幫助我們遍歷數(shù)組。nditer的入?yún)⑹且粋€數(shù)組,返回值是一個可迭代對象。nditer 默認(rèn)會優(yōu)先遍歷行序,通過order參數(shù)可以使其優(yōu)先遍歷列序。

numpy.nditer
  • nditer返回一個迭代器對象

  • nditer默認(rèn)優(yōu)先遍歷行序

  • nditer默認(rèn)返回0維數(shù)組

import numpy as nparray_2d = np.arange(0, 10).reshape(2, 5)print(array_2d)# 優(yōu)先行序遍歷for element in np.nditer(array_2d): print(element)# 優(yōu)先列序遍歷for element in np.nditer(array_2d, order='F'): print(element)# 返回1維數(shù)組for element in np.nditer(array_2d, flags=['external_loop'],order='F'): print(element)

D02 Numpy常用函數(shù),如何優(yōu)雅的遍歷一個多維數(shù)組?

改變數(shù)組形狀

在實(shí)際問題的處理之中,我們經(jīng)常需要改變數(shù)組的形狀,以轉(zhuǎn)換為更為適合處理的數(shù)據(jù)結(jié)構(gòu)。reshape用于在不改變數(shù)組數(shù)據(jù)的條件下,修改數(shù)組的形狀,我們在快速創(chuàng)建矩陣的適合已經(jīng)多次使用過該函數(shù)。下面再來簡單回顧一下。

reshape
  • numpy.reshape(arr, newshape, order=’C’)

  • arr 是需要改變形狀的數(shù)組

  • newshape 是新數(shù)組的維度屬性,新數(shù)組的維度屬性應(yīng)與原數(shù)組兼容,例如行列相等

  • order 是指定按行序或列序改變數(shù)組,’C’ — 按行,’F’ — 按列,’A’ — 原順序,’k’ — 元素在內(nèi)存中的出現(xiàn)順序。其默認(rèn)值為’C’。

數(shù)組轉(zhuǎn)置

ndarray.T,該方法會將數(shù)組進(jìn)行行列轉(zhuǎn)換

import numpy as nparray_2d = np.arange(0,10).reshape(2,5)print(array_2d)print(array_2d.T)

D02 Numpy常用函數(shù),如何優(yōu)雅的遍歷一個多維數(shù)組?

數(shù)組切割

數(shù)據(jù)切割,顧名思義是將數(shù)組切割為多個數(shù)組。關(guān)于數(shù)組切割,numpy提供了一個強(qiáng)大的函數(shù)split,split可以指定按照橫向或則豎向切割數(shù)組。

  • numpy.split(ary, indices_or_sections, axis)

  • ary 是需要切割數(shù)組

  • indices_or_sections 指定需要切割的份數(shù)

  • axis 是指定數(shù)組的切割方向,默認(rèn)為0,橫向切割, axis=1時為豎向切割

import numpy as np# 按行切割array_2d = np.arange(0,10).reshape(2,5)print(array_2d)print(np.split(array_2d,2))# 按列切割array_2d = np.arange(0,12).reshape(2,6)print(array_2d)print(np.split(array_2d,3,axis=1))

D02 Numpy常用函數(shù),如何優(yōu)雅的遍歷一個多維數(shù)組?

向數(shù)組中添加元素

numpy提供了兩個向數(shù)組中添加元素的方法,分別時append方法和insert方法。append方法會將元素添加至原數(shù)組末尾,insert方法會將元素插入到指定索引位置。下面分別來練習(xí)一下兩種方法的使用。

append
  • numpy.append(arr, values, axis=None)

  • append默認(rèn)返回一個一維數(shù)組

  • arr為需要執(zhí)行插入操作的數(shù)組

  • values為需要插入的值

  • axis指定插入方式 axis=0為按行插入,axis=1為按列插入

  • 當(dāng)指定axis時 插入的數(shù)組維度必須與原數(shù)組相等

import numpy as nparray_2d = np.arange(0,10).reshape(2,5)print(array_2d)#向數(shù)組中插入元素new_array_1d = np.append(array_2d,[1,2,3])print(new_array_1d)#按行序向數(shù)組中插入元素# 注意:當(dāng)指定行列時,輸入數(shù)組的維度必須與原數(shù)組相同new_array_2d = np.append(array_2d,[[10,11,12,13,14]],axis=0)print(new_array_2d)#按列序向數(shù)組中插入元素np.append(array_2d,[[5],[10]],axis=1)print(array_2d)

D02 Numpy常用函數(shù),如何優(yōu)雅的遍歷一個多維數(shù)組?

insert
  • numpy.insert(arr, obj, values, axis)

  • insert默認(rèn)返回一個一維數(shù)組

  • arr 需要插入元素的數(shù)組

  • obj 需要插入的索引位置

  • values 需要插入的值

  • axis 指定插入方式,axis=0為按行插入,axis=1為按列插入

import numpy as nparray_2d = np.arange(0,10).reshape(2,5)print(array_2d)# 向指定位置插入元素new_array_1d = np.insert(array_2d,obj=5,values=[100,101])print(new_array_1d)# 向指定位置按行序插入元素new_array_2d = np.insert(array_2d,obj=1,values=[10,11,12,13,14],axis=0)print(new_array_2d)# 向指定位置按列序插入元素new_array_2d = np.insert(array_2d,obj=1,values=[5,10],axis=1)print(new_array_2d)

D02 Numpy常用函數(shù),如何優(yōu)雅的遍歷一個多維數(shù)組?

刪除數(shù)組中的元素

怎么樣,通過numpy我們可以很方便的操作復(fù)雜的數(shù)組,下面來看一下本節(jié)最后一個內(nèi)容,數(shù)組中元素的刪除delete,delete與insert,append一樣它們不會改變元素組,而是會返回一個新數(shù)組,下面來練習(xí)一下delete的使用。

delete
  • numpy.delete(arr, obj, axis)

  • arr 是需要執(zhí)行刪除操作的數(shù)組

  • obj 是需要刪除元素的索引位置

  • axis 是指定行序列序,axis=0為行序,axis=1為列序,默認(rèn)是將數(shù)組展開為1維數(shù)組

import numpy as nparray_2d = np.arange(0,10).reshape(2,5)print(array_2d)# 將數(shù)組展開為一維數(shù)組后刪除指定索引位置元素,并返回一維數(shù)組new_array_1d = np.delete(array_2d,3)print(new_array_1d)# 刪除指定行序位置的元素new_array_2d = np.delete(array_2d,0,axis=0)print(new_array_2d)# 刪除指定列序位置的元素new_array_2d = np.delete(array_2d,1,axis=1)print(new_array_2d)

D02 Numpy常用函數(shù),如何優(yōu)雅的遍歷一個多維數(shù)組?

關(guān)于numpy的基礎(chǔ)即將結(jié)束,下一章將會講解numpy的統(tǒng)計、排序與篩選,在這之后便會進(jìn)入下一張pandas基礎(chǔ)的講解。

轉(zhuǎn)載請注明出處

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多