【Python 筆記】Matplotlib Pyplot 套件應用(中)
【Python 筆記】Matplotlib Pyplot 套件應用(中) 感謝您點進本篇文章,我是 LukeTseng,該系列主要以筆記加上口語白話形式學習 Python,若文章某處有誤敬請告知,非常感謝。 解決中文顯示問題 要直接使用系統內建的中文字體,加入以下這一行即可: 1plt.rcParams['font.sans-serif'] = ['Microsoft JhengHei'] # Windows 微軟正黑體 使用標楷體可將 Microsoft JhengHei 填入 DFKai-sb。 在 colab 上執行可能會出錯,而在 Jupyter Notebook 就沒什麼問題,因為 Jupyter Notebook 是在電腦本機上執行的,可以隨時抓到字體庫。 透過以下範例可試試看顯示結果是否正確: 123456789101112import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft JhengHei...
【Python 筆記】Matplotlib Pyplot 套件應用(上)
【Python 筆記】Matplotlib Pyplot 套件應用(上) 感謝您點進本篇文章,我是 LukeTseng,該系列主要以筆記加上口語白話形式學習 Python,若文章某處有誤敬請告知,非常感謝。 Matplotlib 是啥? Matplotlib 是 Python 中最熱門的 2D 繪圖函式庫,是由 John D. Hunter 這個人開發的。然後這個人他原本其實是一個美國的生物神經學家,後來為了可視化癲癇患者的腦電圖數據,因而製作了這個 Matplotlib 出來。 Matplotlib 這個名稱其實是 MATLAB + Plot + Library 的簡稱,因為它使用類似 MATLAB 的語法和樣式來繪圖。 這個套件可以繪製各種圖表,有折線圖、直方圖、圓餅圖、散點圖、長條圖等等,還能跟其他 Python 資料處理函式庫如 NumPy、Pandas 有很高的兼容性,可以互相搭配使用。 總之這就是一個數據分析可視化的繪圖函式庫,正因為他熱門,正是因為它非常強大,所以才要學這東西。 安裝 Matplotlib 使用以下指令安裝,如果已在 colab 或是 Anacond...
【Python 筆記】csv 套件使用
【Python 筆記】csv 套件使用 感謝您點進本篇文章,我是 LukeTseng,該系列主要以筆記加上口語白話形式學習 Python,若文章某處有誤敬請告知,非常感謝。 什麼是 csv csv 的全名是 comma-separated values,逗號分隔數值。 csv 是一種純文字檔案格式,用逗號來分隔不同的資料欄位,每一行代表一筆記錄,常用於儲存和交換表格資料。 .csv 檔案如同用記事本就能打開的 Excel 表格,因為格式簡單、通用性高,幾乎所有試算表軟體和資料庫都能讀取。 而一般常見的 .csv 格式大概長像下面這樣: 123name,age,departmentJohn Smith,30,AccountingJane Doe,25,IT 第一行是標題列(欄位名稱),後面的每一行代表一筆資料記錄。 Python csv 套件 csv 是 python 早就內建在裡面的一個套件,所以不用特地安裝,只需要在程式碼中打下這一行指令去引入 csv 即可: 12import csv# 或是 from csv import * 在做 csv 檔案操作的時候,需要應用到檔案處理...
【Python 筆記】JSON 格式讀寫
【Python 筆記】JSON 格式讀寫 感謝您點進本篇文章,我是 LukeTseng,該系列主要以筆記加上口語白話形式學習 Python,若文章某處有誤敬請告知,非常感謝。 JSON 是啥? JSON 全名是 JavaScript Object Notation,這是一種輕量級的資料交換格式,以純文字方式儲存和傳輸資料。雖然名字有 javascript,但他完全獨立於這個程式語言,幾乎所有現代程式語言都支援 JSON 格式。 JSON 的語法很簡單,與 Python 中的字典相似,同樣是採用鍵值對(key-value)的方式組織資料。 JSON 由兩個主要結構組成: 物件(Object)使用大括號 {} 包起來,含鍵值對。 陣列(Array)使用中括號 [] 包裹,含有序的值列表。 JSON 的資料型態 JSON 支援六種資料型態,分為簡單型態和複雜型態: 簡單型態: 字串(string):必須用雙引號包裹,如 "name": "LukeTseng"。 數字(Number):可為整數或浮點數,如 "a...
【Python 筆記】檔案處理(File handling)
【Python 筆記】檔案處理(File handling) 感謝您點進本篇文章,我是 LukeTseng,該系列主要以筆記加上口語白話形式學習 Python,若文章某處有誤敬請告知,非常感謝。 簡介 檔案處理是程式人必備的技能,主要是因為它能讓資料持久化,讓資訊存留在硬碟上,而非程式執行期間的記憶體中。也可以方便讀取或寫入資料檔,如設定檔、日誌(log)、或用戶資料。最重要的是自動化流程,例如可結合 .csv 套件將讀入的檔案寫入 .csv 中產生報表等等。 基本概念如下: 開檔(open):使用 open() 函數打開檔案。 讀寫(read / write):對檔案內容進行操作。 關檔(close):確保所有操作完成並釋放系統資源。 open() 方法 使用 open() 之後,若沒有後續動作要執行,務必一定要搭配 close() 方法關閉檔案,不然你讓檔案一直在那邊開著浪費記憶體。 open() 基本語法: 1open(file, mode='r') open 基本上是接收兩個參數,file 是檔名,而 mode 則是模式,可選擇讀(r)還是寫(w)...
【C++ 筆記】bitset 容器,C++ 二進位運算的絕佳利器
【C++ 筆記】bitset 容器,C++ 二進位運算的絕佳利器 很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 什麼是 bitset? std::bitset<N> 是 C++ STL(位於標頭檔 <bitset>)中,一個用來表示固定長度為 $N$ 位元(bits)的位元序列(bit sequence)的類別模版。 假設 $N = 16$ ,那就表示有 16 位元,數字 1 就會表示成 “0000000000000001”。 bitset 也是 C++ 當中的一種容器,這個容器能夠做到單獨、有效的去操作每一個位元,也能解決位元運算、實現二進位表示法的工具,這也是為什麼需要用到它的原因。 使用 bitset bitset 在使用之前需要引入標頭檔 <bitset>,另外以下是其基本語法: 1bitset<n> name; 其中 n 是固定的位元數...
Linux chmod、chgrp、chown 權限管理筆記
Linux chmod、chgrp、chown 權限管理筆記 感謝您點進本篇文章,我是 LukeTseng,近期接觸到 Linux 系統,時常需要面對黑色終端機,有些時候想做到一些操作,卻也不知道那個指令叫什麼,我也沒有好好奠基 Linux 的基礎指令,所以特此製作本篇文章!希望能解決到你我的痛點! 若本篇文章某處有誤,敬請告知,感謝! Linux 檔案、目錄權限 Linux 的檔案權限分為三個層級: 擁有者(Owner/User, u):檔案的所有者。 群組(Group, g):與檔案擁有者同群組的使用者。 其他人(Others, o):系統上其他所有使用者。 每個層級可以設定三種權限: r(read, 讀取):數字值為 4,可以查看檔案內容或列出目錄內容。 w(write, 寫入):數字值為 2,可以修改檔案或在目錄中新增 / 刪除檔案。 x(execute, 執行):數字值為 1,可以執行檔案或進入目錄。 當在輸入 ls -l 時,會列出像以下這些東西: 其中 drwxr-xr-x 就是檔案或目錄的權限,可以分成三個部分來看: 12d rwx r-x r-x1 2...
那些你不能不會的 Linux 基礎指令!(下)
那些你不能不會的 Linux 基礎指令!(下) 感謝您點進本篇文章,我是 LukeTseng,近期接觸到 Linux 系統,時常需要面對黑色終端機,有些時候想做到一些操作,卻也不知道那個指令叫什麼,我也沒有好好奠基 Linux 的基礎指令,所以特此製作本篇文章!希望能解決到你我的痛點! 若本篇文章某處有誤,敬請告知,感謝! 萬用字元(Wildcard) 最常見的就是 * 跟 ? 這兩個字元。 * 代表「任意長度的任意字元」,可以是 0 個、1 個或多個字元。 範例如下: ls *:列出目前目錄下所有非隱藏檔案。 以下是 ls * 跟 ls 的差別: ls *.txt:列出所有副檔名為 .txt 的檔案(如 a.txt、b.txt)。 ls a*:列出所有以 a 開頭的檔案(如 apple、a.txt)。 ls *a*:列出所有檔名裡面有包含 a 這個字元的檔案。 下圖中使用 ls *a* 就找到 abcdefg、alphafile … 以及 snap 目錄底下的 firmware-updater 跟 snapd-desktop-integration 檔案。...
那些你不能不會的 Linux 基礎指令!(上)
那些你不能不會的 Linux 基礎指令!(上) 感謝您點進本篇文章,我是 LukeTseng,近期接觸到 Linux 系統,時常需要面對黑色終端機,有些時候想做到一些操作,卻也不知道那個指令叫什麼,我也沒有好好奠基 Linux 的基礎指令,所以特此製作本篇文章!希望能解決到你我的痛點! 若本篇文章某處有誤,敬請告知,感謝! 一個點跟兩個點的意義 一個點 . 在 Linux 中代表當前目錄的意思,兩個點 .. 則為上一個目錄。 檔案與目錄操作 ls 首先要介紹的是 ls 指令,英文全名是 list directory contents,主要是用來「列出目前目錄下的所有檔案與資料夾名稱(不含隱藏檔案)」,作用同於 Windows 系統的 dir 指令。 基本語法如下: 1ls [options] [files or directories] options 則為可選的參數,可加可不加。 若直接 ls 該檔案名稱時,會直接顯示檔案名稱,若沒有找到則會顯示 "No such file or directory"。 而 ls 目錄,則會顯示該目錄裡面的所有檔案與資料夾名...
【Python 網路爬蟲筆記】Selenium Library、爬取 Hackmd 文章專題 - part 4
【Python 網路爬蟲筆記】Selenium Library、爬取 Hackmd 文章專題 - part 4 感謝你點進本篇文章!!我是 LukeTseng,一個熱愛資訊的無名創作者,由於近期大學開設大數據分析程式設計這門課程,裡面談到了爬蟲概念,讓我激起一些興趣,因而製作本系列筆記。 聲明:本篇筆記僅供個人學習用途,斟酌參考。 本篇筆記使用 Jupyter Notebook,搭載 Anaconda 虛擬環境,如需下載者可至該網址:https://www.anaconda.com/download 安裝 Selenium 模組 透過以下指令: 1pip install selenium 在 Jupyter Notebook(安裝完後記得 Restart Kernel 才會啟用): 1!pip install selenium 什麼是 Selenium? Selenium 是一種開源的網頁瀏覽器自動化工具,可以透過程式碼來模擬 user 在瀏覽器上的各種操作(像人一樣),從而完成自動化測試或網頁爬蟲任務。 Selenium 就是動態爬蟲中應用到最重要的技術。 Selenium 用...
【Leetcode C++ 解題筆記】Stack - part 3
【Leetcode C++ 解題筆記】Stack - part 3 本筆記僅供個人學習用途,內容斟酌參考。 20. Valid Parentheses Problem Source:https://leetcode.com/problems/valid-parentheses/description/?envType=problem-list-v2&envId=stack 難度:Easy 題目就是要你對這三個括號 ( [ { 去做匹配,就是要成對的括號,然後輸出 true,否則為 false。 這一道題目是非常經典的 Stack 題,務必要學會。 解題思路(0 ms): 用 C++ STL 內建的容器 stack <char> result,遍歷字串 s 的所有字元,如果遇到左括號就先堆進來,不是的話檢查是不是空的以及堆疊頂端是否為該括號的左括號,如果兩者擇一是的話就回傳 false,表示這是不合法的。 範例程式碼: 12345678910111213141516171819202122class Solution {public: ...
【Uva 解題筆記】12149 - Feynman
【Uva 解題筆記】12149 - Feynman Uva Online Judge:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3301 Zerojudge:https://zerojudge.tw/ShowProblem?problemid=a111 PDF Source:https://onlinejudge.org/external/121/12149.pdf 題目翻譯: 理查·菲利普斯·費曼(Richard Phillips Feynman)是一位著名的美國物理學家,也是諾貝爾物理學獎得主。他從事理論物理學研究,同時也開創了量子計算領域。他曾到南美洲待了十個月,在熱帶地區演講並享受生活。他也以他的著作「別鬧了,費曼先生!」和「你管別人怎麼想?」而聞名,這些書中包含了一些他在赤道以下的冒險經歷。 他一生都熱衷於解謎題、製作鎖和密碼。最近,一位曾在 1949 年接待這位年輕物理學家的南美洲老農夫,找到了一些被認為...
【Uva 解題筆記】12015 - Google is Feeling Lucky
【Uva 解題筆記】12015 - Google is Feeling Lucky Uva Online Judge:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3166 Zerojudge:https://zerojudge.tw/ShowProblem?problemid=a130 PDF Source:https://onlinejudge.org/external/120/12015.pdf 題目翻譯: Google 是最著名的網際網路搜尋引擎之一,它提供和開發了許多網路服務和產品。在其搜尋引擎網站上,有一個有趣的按鈕「好手氣」吸引了我們的目光。這個功能讓使用者可以跳過搜尋結果頁面,直接進入首選頁面。這太省事了,節省了大量時間。 問題是,當使用者輸入一些關鍵字並按下「好手氣」按鈕時,會出現哪個網頁呢?Google 做了很多工作,並提出了優秀的方法來處理這個問題。在這個簡化的問題中,讓我們只考慮 Google 為...
什麼是 Hamming Code(漢明碼)?
什麼是 Hamming Code(漢明碼)? 歡迎你點入本篇文章,會促成我想做這篇的原因,主要是因為在上計概時,突然浮現很多靈感,跟一大堆的問題(教授,為什麼要講的這麼淺白呢?我想知道更多啊啊!),為了一次解決我所有的困惑,於是製作本篇文章。 若文章有任何疑點及錯誤的地方歡迎提出。 為什麼需要這個東東? 在資料傳輸或儲存的過程中,位元(bit)可能因雜訊、干擾或硬體錯誤而被翻轉(做補數 0 -> 1, 1-> 0),導致資料錯誤。為了解決這個問題,1950 年代美國數學家 Richard Wesley Hamming 發明了 Hamming Code(漢明碼)。 Hamming Code 是一種錯誤偵測與單一錯誤修正(Single Error Correction, SEC)的編碼機制,在傳輸資料時會加入一些額外的同位元(parity bits),使接收端能判斷是否發生錯誤,並自動修正錯誤的位元。 若結合奇偶校驗位(overall parity bit),還可以達到 SECDED:Single Error Correction, Double Error Detect...
什麼是 CRC(Cyclic Redundancy Check)檢測?
什麼是 CRC(Cyclic Redundancy Check)檢測? 歡迎你點入本篇文章,會促成我想做這篇的原因,主要是因為在上計概時,突然浮現很多靈感,跟一大堆的問題(教授,為什麼要講的這麼淺白呢?我想知道更多啊啊!),為了一次解決我所有的困惑,於是製作本篇文章。 若文章有任何疑點及錯誤的地方歡迎提出。 CRC 是啥?能吃嗎? CRC 的中文全名叫做循環冗餘校驗(Cyclic Redundancy Check, CRC),是一種廣泛應用於數位網路和儲存裝置中的錯誤偵測碼,用於檢測數據傳輸或儲存後可能出現的意外變化。 這種 CRC 校驗的方法是由 W. Wesley Peterson 這個人在 1961 年所發表的。 CRC 的核心概念是在發送端(Sender)根據要傳送的數據,按照特定規則產生一個固定位數的校驗碼(也稱為檢查和),將其附加在原始數據(Original Data)後面一起傳送。接收端(Receiver)收到數據後,使用相同的算法重新計算校驗碼,並與接收到的校驗碼進行比對。如果兩者一致,則該數據傳輸正確;若不一致,則表示這個數據在傳輸過程中發生了錯誤。 總之呢,C...






