用白話文談數學公式 - 熵(entropy)
Claude Shannon 於 Information Theory 研究中提出熵(entropy)的概念,可以說是影響後續機器學習(machine learning)發展相當重要的概念。
熵看似難以理解,但其實是 1 個很簡單的概念,只要了解其背後的意義就能夠輕鬆上手。
Posted on Jun 12, 2021 in 數學概念 by Amo Chen ‐ 3 min read
Claude Shannon 於 Information Theory 研究中提出熵(entropy)的概念,可以說是影響後續機器學習(machine learning)發展相當重要的概念。
熵看似難以理解,但其實是 1 個很簡單的概念,只要了解其背後的意義就能夠輕鬆上手。
Posted on Jun 12, 2021 in 數學概念 by Amo Chen ‐ 3 min read
當 Elasticsearch 中存放大量的資料(或稱文件 document)時,一般難以片刻就遍訪每 1 筆資料,如果是為了驗證資料格式,或者需要資料進行實驗,此情況下可選擇用抽樣的方式進行,不僅可利用抽樣的方式預估整個資料庫的情況,也可以有效率地以部分資料進行實驗。
本文記錄如何以 function_score 結合 random_score 進行隨機抽樣。
Posted on May 9, 2021 in Elasticsearch by Amo Chen ‐ 2 min read
先前 Python multiprocessing 模組簡單說明與範例 一文簡述 multiprocessing 模組中 Pool, Manager 的使用方法,也講述如何在多個 Processes 之間共享資料,不過仍有許多關於 multiprocessing 中的功能尚未詳述,例如 Process 類別(class), Queue, Pipe 等等,這些功能不僅重要也很實用,是邁向 Python 高階功能的必學項目,因此不可忽視。
本文將透過實際範例了解更多關於 multiprocessing 模組中實用的功能。
Posted on May 1, 2021 in Python 程式設計 - 中階 by Amo Chen ‐ 11 min read
在 pytest 教學 一文,我們學會如何利用 pytest 更輕鬆地撰寫 Python 的測試程式,但 pytest 所提供的方便功能不僅僅如此,pytest 還有許多好用的 plugins 能夠利用,使用得當的話,將可增加開發效率。
剛好 15 amazing pytest plugins 中提到不少實用的 pytest plugins, 本文就將其中 7 項進行簡介。
Posted on Apr 12, 2021 in Python 模組/套件推薦 by Amo Chen ‐ 3 min read
隨著 JSON 格式作為資料交換格式大行其道,使用工具對 JSON 資料進行操作也逐漸成為家常便飯,各種工具中, jq 可說是一套十分易於操作的 JSON 操作工具。
本文將透過實際資料學習如何使用 jq 。
Posted on Mar 27, 2021 in Unix-like 命令列教學 by Amo Chen ‐ 14 min read
除了先前分享過 用 sed 指令插入(insert)文字到檔案中的指定行數 之外, sed
指令其實還有很多方便的功能,例如編者最常使用的字串取代、刪除指定行、列印指定行等 3 種,本文將介紹這 3 種 sed 用法。
Posted on Mar 21, 2021 in Unix-like 命令列教學 by Amo Chen ‐ 2 min read
Elasticsearch 已經是現今開發者欲實現搜尋功能的一條捷徑,其易用的框架以及便利的 API(Application Programming Interface) 都十分易於開發與整合,所以許多網頁或 APP 應用中的搜尋功能其實背後都使用 Elasticsearch 進行建構,因此學會如何使用 Elasticsearch 也是相當值回票價的一件事。
本文將利用 Docker 建立 Elasticsearch 的實驗環境,給予初學者一個進入 Elasticsearch 世界的方便之門。
Posted on Feb 21, 2021 in 用 Docker 架設服務 by Amo Chen ‐ 5 min read
談到插入(insert)元素到已排序串列(list) ,最暴力的方法就是每次插入元素後直接排序:
>>> a = [1, 2, 3, 4]
>>> a.insert(0, 5)
>>> a
[5, 1, 2, 3, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]
不過隨著串列越來越長,每次插入元素後再進行排序的方式,將會越來越慢,甚至造成大量不必要的運算,這時可以利用 Python 內建模組 bisect ,透過二元搜尋的方式幫我們插入元素到串列之中,如此一來該串列就不需要在新增元素後進行排序。
p.s bisect 只能運用在已排序過的串列(list)
Posted on Feb 7, 2021 in Python 程式設計 - 初階 by Amo Chen ‐ 3 min read