docker tensorflow_用Docker容器方式安裝TensorFlow
阿新 • • 發佈:2020-12-16
Datawhale提供的pandas學習的開源地址:Joyful Pandas
Pandas 預備知識
python基礎
列表推導式與條件賦值
匿名函式與map方法
zip物件與enumerate方法
numpy基礎
np陣列構造
np陣列變形與合併
np陣列切片與索引
常用函式
廣播機制
向量與矩陣的計算
練習
利用列表推導式寫矩陣乘法
更新矩陣
卡方統計量
改進矩陣計算的效能
連續整數的最大長度
一、python基礎
1.列表推導式與條件賦值
列表推導式:
[A for i in B] A為對映函式 i為指代的內容 B為迭代的物件
Ex:
單層巢狀
[my_func(i) for i in range(5)] my_func()自己定義的函式 i從0-4
多層巢狀
[m+’_’+n for m in [‘a’, ‘b’] for n in [‘c’, ‘d’] ] 其中m+’_’+n相當於自己定義的函式
條件賦值:
Value = a if condition else b:
Ex:
Value = ‘cat’ if 2>1 else ‘dog’
‘cat’
2.匿名函式與map方法
3.Zip物件與enumerate方法
enumerate 是一種特殊的打包,它可以在迭代時繫結迭代元素的遍歷序號
L = list(‘abcd’)
For index, value in enumerate(L):
Print(index, value)
0 a
1 b
2 c
3 d
For index, value in zip(range(len(L)),L)
Print(index, print)
二、Numpy基礎
1.Np陣列的構造
np.array([1,2,3])
a.等差數列
np.linspace(1,5,11) #起始 終止(包含) 樣本個數
np.arrange(1,5,2) #起始 終止(不包含) 步長
b.特殊矩陣
zeros,eye,full
np.zeros(2,3) 兩行三列的零矩陣
np.eye(3) 3X3的單位矩陣
np.eye(3, k=1) 偏移主對角線一個單位的單位矩陣
np.full((2,3),10) 元組傳入大小 10表示填充的數值
np.full((2,3),[1,2,3])
c.隨機矩陣
np.random()
rand 表示0-1均勻分佈的隨機陣列 np.random.rand(a, b)
randn 表示0-1均勻分佈的標準正態的隨機陣列 np.random.randn(a, b)
randit 表示0-1均勻分佈的隨機整陣列 np.random.randit( low, high,size) size=(a,b)
choice 表示0-1均勻分佈的隨即列表 np.random.choice(列表,(a,b)) choice 可以從給定的列表中,以一定概率和方式抽取結果,當不指定概率時為均勻取樣,預設抽取方式為有
放回抽樣:
my_list = ['a', 'b', 'c', 'd']
np.random.choice(my_list, 2, replace=False, p=[0.1, 0.7, 0.1 ,0.1])
array(['a', 'b'], dtype='<U1')
np.random.choice(my_list, (3,3))
array([['a', 'c', 'b'],
['b', 'b', 'd'],
['d', 'b', 'c']], dtype='<U1')
隨機種子
固定隨機數的輸出結果
np.random.seed(0)
np.random.rand()
2.np陣列的變形與合併
a.轉置 T
np.zeros((2, 3)).T
b.陣列的合併操作:r_ 上下合併 c_ 左右合併
np.r_[np.zeros((2,3)), zeros((2,3))]
np.c_[np.zeros((2,3)), zeros((2,3))]
一維陣列和二維陣列進行合併時,應當把其視作列向量,在長度匹配的情況下只能夠使用左右合併的 c_ 操作。
c.維度變換:reshape
reshape 能夠幫助使用者把原陣列按照新的維度重新排列。在使用時有兩種模式,分別為 C 模式和 F 模式,分別以逐行和逐列的順序進行填充讀取
target = np.arange(8).reshape(2,4)
target.reshape((4,2), order='C') # 按照行讀取和填充
target.reshape((4,2), order='F') # 按照列讀取和填充
特別地,由於被呼叫陣列的大小是確定的,reshape 允許有一個維度存在空缺,此時只需填充-1 即可:
target.reshape((4,-1))
下面將 n*1 大小的陣列轉為 1 維陣列的操作是經常使用的:
target = np.ones((3,1))
target.reshape(-1)
3.np陣列的切片與索引
陣列的切片模式支援使用 slice 型別的 start