chapter.numpy1.1 ndarray多维数组
目錄
- 乍見之歡
- ndarray是什么
- 創建ndarray數組
- ndarray數據類型轉換
- 久處不厭
- 數組變換
乍見之歡
ndarray是什么
NumPy 最重要的一個特點是其 N 維數組對象 ndarray,它是一系列同類型數據的集合,以 0 下標為開始進行集合中元素的索引。
ndarray 對象是用于存放同類型元素的多維數組。
ndarray 中的每個元素在內存中都有相同存儲大小的區域。ndarray對象是一個快速而靈活的數據集容器。
創建ndarray數組
通過numpy中的array函數就可以創建ndarray數組。
注:numpy能將序列數據(列表,元組,數組等)轉化為ndarray數組。
實例:
運行結果:
[1 3 5 7 9] [0 2 4 6 8] [[1 3 5 7 9][0 2 4 6 8]]當創建好ndarray數組時,會同時存儲ndarray的shape和dtype,shape為數組維度大小和長,dtype為ndarray的數據類型。
例:
運行結果:
[1 3 5 7 9] (5,) int32當數組中有整形和浮點型數據時,dtype數據類型為浮點型。
例:
運行結果:
[1. 3. 5.3 7. 9. ] (5,) float64除了np.array方法創建數組外,還可以使用其他一些函數創建,例:zeros函數,zeros函數可以創建指定長度全為0的數組。ones函數,可以創建指定長度全為1的數組。empty函數,可以創建一個沒有具體數值得數組。arange函數類似于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)運行結果:
[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數據類型轉換
數組的數據類型有很多種,常見的數據類型為:整數(int)浮點數(float)復數(complex)布爾值(bool)字符串(_string)
數據類型轉換函數astype
實例:
運行結果:
float64轉換為整數
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)運行結果:
[1. 3. 5.3 7. 9. ]#轉換前 float64#類型 [1 3 5 7 9]#轉換后 int32#類型注:浮點數轉化為整數時,小數點后全部截斷。不是四舍五入。
久處不厭
數組變換
數組重塑
對于定義好的數組可以使用reshape方法改變數組維度。
實例:
運行結果:
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [[0. 0.][0. 0.][0. 0.][0. 0.][0. 0.]]多維數組同樣也可以重塑。
相反的數據散開函數ravel,扁平化flatten函數
運行結果:
[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.]數組合并
數組的合并用于幾個數組間的操作,concatenate方法通過指定軸方向,即將多個數組合并在一起。
運行結果:
[[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]]數組合并也可以使用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]))運行結果同上。
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]))運行結果:
[[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]]數組拆分
使用split方法進行拆分。
運行結果:
[array([[ 0, 1, 10, 11],[ 2, 3, 12, 13]]), array([[ 4, 5, 14, 15]]), array([[ 6, 7, 16, 17],[ 8, 9, 18, 19]])]數組轉置
使用transpose方法可以實現轉置。
T屬性同樣可以用來轉置。
總結
以上是生活随笔為你收集整理的chapter.numpy1.1 ndarray多维数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2016计算机国二试题,全国计算机等级考
- 下一篇: 针对报错 ValueError: Whe