first step
首先要學(xué)習(xí)py的一些有用的開源包,方便編寫代碼
- Numpy
區(qū)別于matlab比规,py更多的使用array數(shù)組拦英。
- index的的起始位置為0.
- 更多的使用refence,而不是copy傳參
- Numpy中的class matrix是class array的一個(gè)子集
- Numpy的rank函數(shù)灾常,當(dāng)應(yīng)用于數(shù)組類型時(shí)返回的是N 維的數(shù)組铃拇。但是應(yīng)用于matrix函數(shù)時(shí)返回的是N×1的矩陣類型的返回類型。
- shape = N×1雕什,1×N显晶,N。代表的是不一樣的類型偿警。
slicing
有兩種方法來獲取數(shù)組中的某一列數(shù)據(jù):1. 使用整數(shù)和slice混合的方法將會(huì)得到更小的rank唯笙。2. 僅使用slice這種方法會(huì)得到跟原來數(shù)組一樣rank的數(shù)組崩掘,因?yàn)閟licing 訪問數(shù)組會(huì)返回比末尾范圍小一的數(shù)組值。
import numpy as np
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
row_r1 = a[1, :] # rank =1, shape = (4,)
row_r2 = a[1:2, :] # rank =2 ,shape = (1, 4)
- integer indexing
print(a[[0, 1, 2], [0, 1, 0]]) #通過元素來訪問數(shù)組
print(np.array([a[0, 0], a[1, 1], a[2, 0] ] ) ) # 另外一種方法
trick :小技巧
b= np.array([0, 2, 0, 1])
print(a[np.arange(4), b])# 通過定義數(shù)組來訪問指定的integer slicing抄瑟。
通過bool值來篩選數(shù)組
a = np.array([ [1, 2 ], [3, 4], [5, 6]])
bool_idx = (a > 2)
print(bool_idx) # 輸出由判決式(true枉疼,false)構(gòu)成的數(shù)組。
print(a[bool_idx])# 通過判決式構(gòu)成的數(shù)組來indexing 數(shù)組
#可以得到滿足條件的元素組成的rank =1 的數(shù)組
print(a[a > 2])# 簡化版