假設有一個m*n矩陣A:
查矩陣維度:
[In] np.ndim(A)
查矩陣形狀:
[In] A.shape
查矩陣元素形態:
[In] A.dtype
利用索引查元素的值:
[In] A[m][n] #或是A[m, n]皆可
建立一個元素皆為0的m*n矩陣:
[In] np.zeros((m, n))
建立一個元素皆為1的m*n矩陣:
[In] np.ones((m, n))
建立一個n*n單位矩陣(方陣,對角線為1,其餘為0):
[In] np.eye(n)
建立一個元素值為0到n-1的一維陣列(ndarray物件):
[In] np.arange(n)
arange()其實就類似python內建的range(),python的range()會建立一個list,arrange()則是建立了一個ndarray物件,其可搭配reshape()塑形成想要的形狀:
[In] np.arange(n).reshape((m, n))
轉換矩陣元素形態:
[In] A.astype( ["int" | ''float "] )
astype()可以將矩陣的元素形態從integer轉換成float,或是從float轉換成integer,也可以從string轉換成integer或是float。
[In] A = np.array(['1', '2', '3', '4'])
[In] A.astype('int')
[Out] array([1, 2, 3, 4])
注意,就算將矩陣的元素形態從integer轉成integer(也就是形態其實沒變),其仍會建立一個新矩陣,而非套用在原矩陣上。
不過,對Numpy的矩陣做slice,是對原矩陣操作,這樣可以提高效能及節省記憶體用量,對python的list做slice則是會複製一份slice。如果非得複製一份slice,可以用:
[In] A[m:n].copy()
沒有留言:
張貼留言