chapter.numpy1.1 ndarray多维数组
目錄
- 乍見之歡
- ndarray是什么
- 創(chuàng)建ndarray數(shù)組
- ndarray數(shù)據(jù)類型轉(zhuǎn)換
- 久處不厭
- 數(shù)組變換
乍見之歡
ndarray是什么
NumPy 最重要的一個(gè)特點(diǎn)是其 N 維數(shù)組對象 ndarray,它是一系列同類型數(shù)據(jù)的集合,以 0 下標(biāo)為開始進(jìn)行集合中元素的索引。
ndarray 對象是用于存放同類型元素的多維數(shù)組。
ndarray 中的每個(gè)元素在內(nèi)存中都有相同存儲大小的區(qū)域。ndarray對象是一個(gè)快速而靈活的數(shù)據(jù)集容器。
創(chuàng)建ndarray數(shù)組
通過numpy中的array函數(shù)就可以創(chuàng)建ndarray數(shù)組。
注:numpy能將序列數(shù)據(jù)(列表,元組,數(shù)組等)轉(zhuǎn)化為ndarray數(shù)組。
實(shí)例:
運(yùn)行結(jié)果:
[1 3 5 7 9] [0 2 4 6 8] [[1 3 5 7 9][0 2 4 6 8]]當(dāng)創(chuàng)建好ndarray數(shù)組時(shí),會同時(shí)存儲ndarray的shape和dtype,shape為數(shù)組維度大小和長,dtype為ndarray的數(shù)據(jù)類型。
例:
運(yùn)行結(jié)果:
[1 3 5 7 9] (5,) int32當(dāng)數(shù)組中有整形和浮點(diǎn)型數(shù)據(jù)時(shí),dtype數(shù)據(jù)類型為浮點(diǎn)型。
例:
運(yùn)行結(jié)果:
[1. 3. 5.3 7. 9. ] (5,) float64除了np.array方法創(chuàng)建數(shù)組外,還可以使用其他一些函數(shù)創(chuàng)建,例:zeros函數(shù),zeros函數(shù)可以創(chuàng)建指定長度全為0的數(shù)組。ones函數(shù),可以創(chuàng)建指定長度全為1的數(shù)組。empty函數(shù),可以創(chuàng)建一個(gè)沒有具體數(shù)值得數(shù)組。arange函數(shù)類似于range。
import numpy as np array1=np.zeros(5) array2=np.zeros((3,5)) array3=np.ones(5) array4=np.ones((3,5)) array5=np.empty((3,3,3)) array6=np.arange(5) print(array1) print(array2) print(array3) print(array4) print(array5) print(array6)運(yùn)行結(jié)果:
[0. 0. 0. 0. 0.] [[0. 0. 0. 0. 0.][0. 0. 0. 0. 0.][0. 0. 0. 0. 0.]] [1. 1. 1. 1. 1.] [[1. 1. 1. 1. 1.][1. 1. 1. 1. 1.][1. 1. 1. 1. 1.]] [[[6.23042070e-307 1.89146896e-307 1.37961302e-306][6.23053614e-307 6.23053954e-307 9.34609790e-307][8.45593934e-307 9.34600963e-307 9.34603000e-307]][[9.34593493e-307 1.86920872e-306 6.23054972e-307][1.42419530e-306 8.90098127e-307 8.01106038e-307][8.45603441e-307 6.23059726e-307 2.22522597e-306]][[1.06810268e-306 6.23052935e-307 1.33511562e-306][6.89805151e-307 2.22522597e-306 1.33511969e-306][8.34426039e-308 2.10081501e-312 2.10081501e-312]]] [0 1 2 3 4]ndarray數(shù)據(jù)類型轉(zhuǎn)換
數(shù)組的數(shù)據(jù)類型有很多種,常見的數(shù)據(jù)類型為:整數(shù)(int)浮點(diǎn)數(shù)(float)復(fù)數(shù)(complex)布爾值(bool)字符串(_string)
數(shù)據(jù)類型轉(zhuǎn)換函數(shù)astype
實(shí)例:
運(yùn)行結(jié)果:
float64轉(zhuǎn)換為整數(shù)
import numpy as np data=[1,3,5.3,7,9] array=np.array(data) print(array) print(array.dtype) array=array.astype(np.int) print(array) print(array.dtype)運(yùn)行結(jié)果:
[1. 3. 5.3 7. 9. ]#轉(zhuǎn)換前 float64#類型 [1 3 5 7 9]#轉(zhuǎn)換后 int32#類型注:浮點(diǎn)數(shù)轉(zhuǎn)化為整數(shù)時(shí),小數(shù)點(diǎn)后全部截?cái)唷2皇撬纳嵛迦搿?/p>
久處不厭
數(shù)組變換
數(shù)組重塑
對于定義好的數(shù)組可以使用reshape方法改變數(shù)組維度。
實(shí)例:
運(yùn)行結(jié)果:
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [[0. 0.][0. 0.][0. 0.][0. 0.][0. 0.]]多維數(shù)組同樣也可以重塑。
相反的數(shù)據(jù)散開函數(shù)ravel,扁平化flatten函數(shù)
運(yùn)行結(jié)果:
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [[0. 0.][0. 0.][0. 0.][0. 0.][0. 0.]] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]數(shù)組合并
數(shù)組的合并用于幾個(gè)數(shù)組間的操作,concatenate方法通過指定軸方向,即將多個(gè)數(shù)組合并在一起。
運(yùn)行結(jié)果:
[[0 1][2 3][4 5][6 7][8 9]] [[10 11][12 13][14 15][16 17][18 19]] [[ 0 1][ 2 3][ 4 5][ 6 7][ 8 9][10 11][12 13][14 15][16 17][18 19]]數(shù)組合并也可以使用vstack和hstack
import numpy as np array1=np.arange(10).reshape((5,2)) print(array) array2=np.arange(10,20).reshape(5,2) print(array2) print(np.vstack([array1,array2]))運(yùn)行結(jié)果同上。
import numpy as np array1=np.arange(10).reshape((5,2)) print(array) array2=np.arange(10,20).reshape(5,2) print(array2) print(np.hstack([array1,array2]))運(yùn)行結(jié)果:
[[0 1][2 3][4 5][6 7][8 9]] [[10 11][12 13][14 15][16 17][18 19]] [[ 0 1 10 11][ 2 3 12 13][ 4 5 14 15][ 6 7 16 17][ 8 9 18 19]]數(shù)組拆分
使用split方法進(jìn)行拆分。
運(yùn)行結(jié)果:
[array([[ 0, 1, 10, 11],[ 2, 3, 12, 13]]), array([[ 4, 5, 14, 15]]), array([[ 6, 7, 16, 17],[ 8, 9, 18, 19]])]數(shù)組轉(zhuǎn)置
使用transpose方法可以實(shí)現(xiàn)轉(zhuǎn)置。
T屬性同樣可以用來轉(zhuǎn)置。
總結(jié)
以上是生活随笔為你收集整理的chapter.numpy1.1 ndarray多维数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2016计算机国二试题,全国计算机等级考
- 下一篇: 针对报错 ValueError: Whe