1. 程式人生 > 其它 >docker tensorflow_用Docker容器方式安裝TensorFlow

docker tensorflow_用Docker容器方式安裝TensorFlow

技術標籤:pythonpandasnumpy

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