NumPy數組的維數稱為秩(rank),一維數組的秩為1,二維數組的秩為2,以此類推。在NumPy中,每一個線性的數組稱為是一個軸(axes),秩其實是描述軸的數量。比如說,二維數組相當于是一個一維數組,而這個一維數組中每個元素又是一個一維數組。所以這個一維數組就是NumPy中的軸(axes),而軸的數量——秩,就是數組的維數。
1、創建矩陣
Numpy庫中的矩陣模塊為ndarray對象,有很多屬性:T,data, dtype,flags,flat,imag,real,size,
itemsize,nbytes,ndim,shape,strides,ctypes,base等等。
1.1采用ndarray對象
import numpy as np #引入numpy庫#創建一維的narray對象a = np.array([1,2,3,4,5])#創建二維的narray對象a2 = np.array([[1,2,3,4,5],[6,7,8,9,10]])#創建多維對象以其類推
1.2通過函數創建矩陣
1.2.1 arange
import numpy as npa = np.arange(10) # 默認從0開始到10(不包括10),步長為1print(a) # 返回 [0 1 2 3 4 5 6 7 8 9]a1 = np.arange(5,10) # 從5開始到10(不包括10),步長為1print(a1) # 返回 [5 6 7 8 9]a2 = np.arange(5,20,2) # 從5開始到20(不包括20),步長為2print(a2) # 返回 [ 5 7 9 11 13 15 17 19]
1.2.2 linspace
linspace()和matlab的linspace很類似,用于創建指定數量等間隔的序列,實際生成一個等差數列。
import numpy as npa = np.linspace(0,10,5) # 生成首位是0,末位是10,含5個數的等差數列print(a)
1.2.3 logspace
linspace用于生成等差數列,而logspace用于生成等比數列。
下面的例子用于生成首位是100,末位是102,含5個數的等比數列
import numpy as npa = np.logspace(0,2,5)print(a)
1.2.4 ones,zeros,eye,empty
ones創建全1矩陣 
zeros創建全0矩陣 
eye創建單位矩陣 
empty創建空矩陣(實際有值)
import numpy as npa_ones = np.ones((3,4)) # 創建3*4的全1矩陣print(a_ones)# 結果[[ 1. 1. 1. 1.] [ 1. 1. 1. 1.] [ 1. 1. 1. 1.]]a_zeros = np.zeros((3,4)) # 創建3*4的全0矩陣print(a_zeros)# 結果[[ 0. 0. 0. 0.][ 0. 0. 0. 0.][ 0. 0. 0. 0.]]a_eye = np.eye(3) # 創建3階單位矩陣print(a_eye)# 結果[ 1. 0. 0.][ 0. 1. 0.][ 0. 0. 1.]]a_empty = np.empty((3,4)) # 創建3*4的空矩陣 print(a_empty)# 結果[[ 1.78006111e-306 -3.13259416e-294 4.71524461e-309 1.94927842e+289][ 2.10230387e-309 5.42870216e+294 6.73606381e-310 3.82265219e-297][ 6.24242356e-309 1.07034394e-296 2.12687797e+183 6.88703165e-315]]
1.2.5 fromstring
fromstring()方法可以將字符串轉化成ndarray對象,需要將字符串數字化時這個方法比較有用,可以獲得字符串的ascii碼序列。
a = "abcdef"b = np.fromstring(a,dtype=np.int8) # 因為一個字符為8位,所以指定dtype為np.int8print(b) # 返回 [ 97 98 99 100 101 102]
新聞熱點
疑難解答