各種隨筆亂書,希望能至少週更

0%

最近在和一群朋友學python,於是乎順手記(ㄊㄨㄟ)錄(ㄎㄥ)一下我平常習慣使用的Anaconda與jupyter環境。

Why Anaconda?

首先,Anaconda有幾個好處:

能夠切分n個獨立的乾淨環境

這也是我主要使用Anaconda的原因。例如說如果某些專案就是只適用一些版本比較舊的套件,而有些則是用比較新版本的套件時,Anaconda能夠切出複數個互不干擾的乾淨環境,不會造成套件間版本問題(例如python 2與python 3)的干擾與污染,對於維護與開發專案上較為單純。

環境移植與管理方便

有時候會有需要複製當前開發環境來做測試、將當前環境移植道別台機器上的情形,為了不要每移植一次就要再重新安裝套件、複製環境上花費太多時間,除了用docker等container技術之外,Anaconda中有提供快速複製環境的相關指令(在同一台機器上),以及當要轉換機器時Anaconda能夠輸出該環境套件的.yml檔,能夠在另一台機器上快速安裝相同的套件。
對於第一次安裝的人來說Anaconda對於常用套件的安裝相對省時:一鍵安裝完90%一般人這一輩子會用到的Python套件,剩下的再用pip install或conda install個別去安裝即可。

Anaconda 安裝

好惹,讓我幹話繼續說,接下來來開始安裝Anaconda吧~
這邊網頁按下Download後能夠依照你的工作環境下載對應版本的Anaconda。

建立新環境

有了Anaconda之後就能開始安裝環境了~
如果你是windows系統,需要打開剛剛安裝完長出來的Anaconda Prompt,就是那個黑黑的看起來超級不友善又看起來好像很厲害的命令行介面; 而如果你是其他的系統(MacOS、Linux等),則需要打開終端機來打入下面的指令:

1
conda update conda
來先把Anaconda更新到最新,注意在打終端機指令時中間的空格都是必要的。
接著就可以來建立新的開發環境了:
1
conda create --name 你環境的名字 python=3.7
在「你環境的名字」可以取你想要的名字(請記得不能非英數以外的符號),然後戳下Enter讓她跑,跑完的話請輸入
1
conda env list

如果有顯示出你剛剛命名的環境的話就代表你已經成功建立一個python 3.7的開發環境囉!(這個環境是可以視需求建立很多個的,每個環境的套件版本可以完全不同且互不相干,再進行較大型專案開發時十分好用!)

啟動虛擬環境

建立了虛擬環境後可以嘗試啟動她,在Anaconda Prompt/終端機中輸入:

1
conda activate 你環境的名字
這時如果發現黑黑的介面前面()中從(base)變成(你環境的名字)的話就代表成功啟動了~。

開發python 3

在Anaconda Prompt/終端機中輸入

1
python

接下來會出現python的開發介面,在'>>>'後試著打入

1
1+1

如果出現2的話就代表你的環境是能正常運作的~!

關閉虛擬環境

如果你想離開/切換現在所屬環境時可以輸入

1
conda deactivate
來離開環境。

如果成功實作到這裡,恭喜各位邁出了coding之(不歸)路的第一步了!

個人覺得最簡單白話的版本的流形(manifold)的描述方式如下:

  • 與局部歐幾里德空間同胚的圖形

目前關於如何構造拓墣空間看到有幾種切入方式:

  • 先定義什麼是開集(open set)再藉由開集去定義鄰域(Neighbourhood)

  • 先定義什麼是鄰域再由鄰域去定義開集

來定義一下\(T_2\)空間: \(T_2\)空間中任意兩不同點\(a\)\(b\),均有不相交的開鄰域,即存在\(U_{\alpha}\)\(U_{\beta}\)
\[\alpha \in U_{\alpha} \; , \; \beta \in U_{\beta}\]\[ U_{\alpha} \cap U_{\beta} = \varnothing\] 所以在\(T_2\)空間(一些物理書上習慣稱\(T_2\) space為Hausdorff space)中的流形(或者說,流形通常都存在於\(T_2\)空間)就具有可分性。

因此有些書上是利用Hausdorff空間來定義流形:

  • 實(復)\(n\)維流形是一個其中每點都有開鄰域與\(R^n\)的開集同胚的Hausdorff空間

今天嘗試用hexo這個框架來架設自己的技術部落格, 從Medium跑來自架hexo的原因主要是雖然Medium的排版很乾淨很舒服,但是她的寫作環境有以下缺點:
1. 不支援程式碼高亮
2. 不支援TeX的數學公式渲染

在網路上找到一些有關hexo能夠使用TeX語法的文章,於是我也來嘗試看看:

1
2
3
$$\begin{equation}\label{eq1}
E=mc^2
\end{equation}$$
在安裝了mathjax與hexo-renderer-pandoc渲染器之後,上面的LaTeX碼顯示如下: \[\begin{equation}\label{eq1} E=mc^2 \end{equation}\]

MathJax和一般LaTeX語法差別在於一定要用\begin{equation}\label{eq1}把公式包起來並給予編號,例子如下:

1
質能守恆 $\eqref{eq1}$ 由愛因斯坦提出。
質能守恆 \(\eqref{eq1}\) 由愛因斯坦提出。

至於多行公式則依樣沒啥太大的差別:

1
2
3
4
5
6
7
$$\begin{equation}\label{eq2}
\begin{aligned}
a &= b + c \\
&= d + e + f + g \\
&= h + i
\end{aligned}
\end{equation}$$
\[\begin{equation}\label{eq2} \begin{aligned} a &= b + c \\ &= d + e + f + g \\ &= h + i \end{aligned} \end{equation}\]

Hexo的方便之處在於她能夠以markdown來寫文章,且也能將文章輸出,不怕轉移平台/備份時的不便。
舉例如下:

等級一標題

等級二標題

等級三標題

等級四標題

等級五標題
等級六標題
  • aaa
  • bbb
  • ccc

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment