龍家俊教你 機器學習 day23 圓餅圖:用於表示不同分類的佔比情況,通過弧度大小來對比各種分類。 特點:分類數據的佔比情況(佔比) api:plt.pie(x, labels=,autopct=,colors) Parameters: x:數量,自動算百分比 labels:每部分名稱 autopct:佔比顯示指定%1.2f%% colors:每部分顏色
@hbkedge in July 2021
龍家俊教你 機器學習 day24 #Numpy介紹 Numpy(Numerical Python)是一個開源的Python科學計算庫,用於快速處理任意維度的數組。 Numpy支持常見的數組和矩陣操作。對於同樣的數值計算任務,使用Numpy比直接使用Python要簡潔的多。 Numpy使用ndarray對象來處理多維數組,該對像是一個快速而靈活的大數據容器。
龍家俊教你 機器學習 day25 NumPy提供了一個N維數組類型ndarray,它描述了相同類型的“items”的集合。 範例: import numpy as np # 建立ndarray score = np.array( [[50, 89, 86, 67, 89], [78, 97, 59, 67, 81], [90, 94, 78, 62, 74], [91, 93, 91, 57, 69], [76, 87, 75, 67, 86], [78, 79, 84, 97, 84], [94, 92, 63, 47, 64], [96, 85, 83, 67, 85]]) score
龍家俊教你 機器學習 day26 ndarray的屬性 # 建立不同形狀的數組 >>> a = np.array([[1,2,3],[4,5,6]]) >>> b = np.array([1,2,3,4,5]) >>> c = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]]) 分別印出形狀(維度) >>> a.shape >>> b.shape >>> c.shape
龍家俊教你 機器學習 day27 #生成數組的方法 ## 生成0和1的數組 np.ones(shape, dtype) np.ones_like(a, dtype) np.zeros(shape, dtype) np.zeros_like(a, dtype) ones = np.ones([4,8]) ones 返回結果: array([[1., 1., 1., 1., 1., 1., 1., 1.], [1., 1., 1., 1., 1., 1., 1., 1.], [1., 1., 1., 1., 1., 1., 1., 1.], [1., 1., 1., 1., 1., 1., 1., 1.]]) np.zeros_like(ones) 返回結果: array([[0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0.]])
慶祝5人上課 猜下一句吧 眨巴眼:一個大男人偷偷摸摸跑來找眨巴眼,一定是買眨眼那些玩意了! 車文晶:你怎麽知道?
龍家俊教你 機器學習 day28 #生成數組的方法2 np.array(object, dtype) np.asarray(a, dtype) a = np.array([[1,2,3],[4,5,6]]) # 從現有的數組當中建立 a1 = np.array(a) # 相當於索引的形式,並沒有真正的建立一個新的 a2 = np.asarray(a)
猜下一句吧 那天晚上我玩完她後第二天就有了,哪有那麼快的啊
龍家俊教你 機器學習 day29 #生成固定範圍的數組 np.linspace (start, stop, num, endpoint) 創建等差數組 — 指定數量 參數: start:序列的起始值 stop:序列的終止值 num:要生成的等間隔樣例數量,默認為50 endpoint:序列中是否包含stop值,默認為ture # 生成等間隔的數組 np.linspace(0, 100, 11) 返回結果: array([ 0., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100.])
猜下一句吧 好!居然將米釀再箕圍蝦裡面蒸熟,再用原隻吉品鮑魚榨汁,加上極品官燕來炒,表面上看起來平平無奇的炒飯,其實金雕玉砌,高深莫測,不愧有炒王稱號
龍家俊教你 機器學習 day30 np.arange(start,stop, step, dtype) 創建等差數組 — 指定步長 參數 step:步長,默認值為1 np.arange(10, 50, 2) 返回結果: array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48])
猜下一句吧 佛跳牆做到會爆炸,是不允許的...
龍家俊教你 機器學習 day31 np.logspace(start,stop, num) 創建等比數列 參數: num:要生成的等比數列數量,默認為50 # 生成10^x np.logspace(0, 2, 3) 返回結果: array([ 1., 10., 100.])
龍家俊教你 機器學習 day32 #正態分佈創建方式 np.random.randn(d0, d1, …, dn) 功能:從標準正態分佈中返回一個或多個樣本值 np.random.normal(loc=0.0, scale=1.0, size=None) loc:float 此概率分佈的均值(對應著整個分佈的中心centre) scale:float 此概率分佈的標準差(對應於分佈的寬度,scale越大越矮胖,scale越小,越瘦高) size:int or tuple of ints 輸出的shape,默認為None,只輸出一個值 np.random.standard_normal(size=None) 返回指定形狀的標準正態分佈的數組。 舉例:生成均值為1.75,標準差為1的正態分佈數據,1000個 x1 = np.random.normal(1.75, 1, 1000)
猜下一句吧 你怎麼稱呼啊? 史公子 公子也有個名字啊...
龍家俊教你 機器學習 day33 #隨機生成3支股票五天的交易日漲幅數據 # 建立符合正態分佈的3隻股票5天的漲跌幅數據 stock_change = np.random.normal(0, 1, (3, 5)) stock_change
龍家俊教你 機器學習 day34 均勻分佈 1.np.random.rand(d0, d1, ..., dn) 返回[0.0,1.0)內的一組均勻分佈的數
龍家俊教你 機器學習 day35 2.np.random.uniform(low=0.0, high=1.0, size=None) 功能:從一個均勻分佈[low,high)中隨機採樣,注意定義域是左閉右開,即包含low,不包含high. 參數介紹: low: 採樣下界,float類型,默認值為0; high: 採樣上界,float類型,默認值為1; size: 輸出樣本數目,為int或元組(tuple)類型,例如,size=(m,n,k), 則輸出mnk個樣本,預設時輸出1個值。 返回值:ndarray類型,其形狀和參數size中描述一致。
[嚴重劇透] 機智的醫生生活 第一季 終於親啦....
龍家俊教你 機器學習 day36 np.random.randint(low, high=None, size=None, dtype='l') 從一個均勻分佈中隨機採樣,生成一個整數或N維整數數組, 取數範圍:若high不為None時,取[low,high)之間隨機整數,否則取值[0,low)之間隨機整數
龍家俊教你 機器學習 day37 數組的索引、切片 一維、二維、三維的數組如何索引? 直接進行索引,切片 對象[:, :] -- 先行後列 # 二維的數組,兩個維度 exanple: change[0, 0:3] 返回結果: array([-0.03862668, -1.46128096, -0.75596237])
龍家俊教你 機器學習 day38 # 三維數組索引方式: aa = np.array([ [[1,2,3],[4,5,6]], [[12,3,34],[5,6,7]]]) # 返回結果 array([[[ 1, 2, 3], [ 4, 5, 6]], [[12, 3, 34], [ 5, 6, 7]]]) # 索引、切片 >>> aa[0, 0, 1] # 輸出: 2
保安 保安 ~~~人在哪...
龍家俊教你 機器學習 day39 # 形狀修改 ndarray.reshape(shape, order) 返回一個具有相同數據域,但shape不一樣的視圖 行、列不進行互換 # 在轉換形狀的時候,一定要注意數組的元素匹配 ex. aa.reshape([5, 4])
龍家俊教你 機器學習 day40 ndarray.resize(new_shape) 修改數組本身的形狀(需要保持元素個數前後相同) 行、列不進行互換 aa.resize([5, 4])
龍家俊教你 奇蹟之吻 事實上,很多事情都是這樣的,遲遲不敢動作,有可能是因為不明白對方的心意,害怕表白後,會遭到拒絕,而無法突破心防踏出那一步,但誰知道呢?誰說奇蹟不會降臨在自己身上呢?與其被動等待幸福愛情,何不勇敢相信自己一次?自己的奇蹟,原來靠著自己創造,也可能摘下香甜的果實.... from: https://www.marieclaire.com.tw/entertainment/tvshow/50284?atcr=b3a9fd
龍家俊教你 機器學習 day41 ndarray.T 數組的轉置 將數組的行、列進行互換 aa.T.shape (3, 5)
龍家俊教你 機器學習 day42 ndarray.astype(type) 返回修改了類型之後的數組 aa.astype(np.int32)
龍家俊教你 機器學習 day43 ndarray.tostring([order])或者ndarray.tobytes([order]) 構造包含數組中原始數據字節的Python字節 aa= np.array([[[1, 2, 3], [4, 5, 6]], [[10, 13, 34], [15, 16, 17]]]) aa.tostring()
龍家俊教你 機器學習 day44 數組去重覆 np.unique() temp = np.array([[1, 2, 3, 5],[3, 4, 5, 6]]) >>> np.unique(temp) array([1, 2, 3, 4, 5, 6])
龍家俊教你 機器學習 day45 #ndarray運算 # 生成10名同學,5門課程的數據 >>> score = np.random.randint(30, 100, (10, 5)) # 取出最後4名同學的成績,用於邏輯判斷 >>> test_score = score[6:, 0:5] # 邏輯判斷, 如果成績大於60就標記為True 否則為False >>> test_score > 60 array([[ True, True, True, False, True], [ True, True, True, False, True], [ True, True, False, False, True], [False, True, True, True, True]])
龍家俊教你 機器學習 day46 # 通用判斷函數 語法: np.all() # 判斷前兩名同學的成績[0:2, :]是否及格>60 >>> np.all(score[0:2, :] > 60) False
龍家俊教你 機器學習 day47 np.any() # 判斷前兩名同學的成績[0:2, :]是否有大於80 >>> np.any(score[0:2, :] > 80) True
龍家俊教你 機器學習 day48 #進行更加複雜的運算 np.where() # 判斷前3名學生,前3門課程中,成績中大於60的置為1,否則為0 temp = score[:4, :4] np.where(temp > 60, 1, 0)
龍家俊教你 機器學習 day49 數組array與數的運算 arr = np.array([[1, 2, 3, 2, 1, 1], [5, 6, 1, 2, 3, 3]]) arr + 1 arr / 2
龍家俊教你 機器學習 day50 廣播機制 矩陣在進行運算時,要求數組的形狀是相等的。當形狀不相等的數組執行算術運算的時候,就會出現廣播機制,該機制會對數組進行擴展,使數組的shape屬性值一樣,這樣,就可以進行運算了。 例子: arr1 = np.array([[0],[1],[2],[3]]) arr1.shape # (4, 1) arr2 = np.array([1,2,3]) arr2.shape # (3,) arr1+arr2 # 結果是: array([[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6]]) 上述代碼中,數組arr1是4行1列,arr2是1行3列。這兩個數組要進行相加,按照廣播機制會對數組arr1和arr2都進行擴展,使得數組arr1和arr2都變成4行3列。
龍家俊教你 機器學習 day51 矩陣乘法: np.matmul np.dot https://numpy.org/doc/stable/reference/generated/numpy.matmul.html https://numpy.org/doc/stable/reference/generated/numpy.dot.html
龍家俊教你 機器學習 day52 Pandas介紹 2008年WesMcKinney開發出的 library 專門用於數據挖掘的開源python library 以Numpy為基礎,借力Numpy模塊在計算方面性能高的優勢 基於matplotlib,能夠簡便的畫圖 獨特的數據結構
龍家俊教你 機器學習 day53 Pandas數據結構 Pandas中一共有三種數據結構,分別為:Series、DataFrame和MultiIndex 其中Series是一維數據結構,DataFrame是二維的表格型數據結構,MultiIndex是三維的數據結構。