day0-準備工作: 工具介紹

weixin_33724059發表於2018-09-28

準備工作: 工具介紹


AnaConda


官方網站: https://www.anaconda.com/

最受歡迎的Python資料科學平臺

Anaconda Distribution

擁有超過600萬使用者,開源Anaconda Distribution是在Linux,Windows和Mac OS X上進行Python和R資料科學和機器學習的最快和最簡單的方法。它是單機上開發,測試和培訓的行業標準。

維基百科 Anaconda (Python發行版)

Anaconda 是一種Python語言的免費增值開源發行版,用於進行大規模資料處理、預測分析,和科學計算,致力於簡化包的管理和部署。Anaconda使用軟體包管理系統Conda進行包管理。

下載後直接雙擊安裝。使用時,可以點選啟動相應的程式設計環境:

  • Python(shell) : 標準CPython
  • IPython(shell): 相當於在命令視窗的命令提示符後輸入ipython回車。pip install ipython安裝的ipython用法一樣。
  • Ipython QTConsole
  • IPython Notebook:直接點選開啟,或者在命令提示符中輸入ipython.exe notebook
  • Jupyter QTConsole
  • Jupyter Notebook:直接點選開啟,或在終端中輸入: jupyter notebook 以啟動伺服器;在瀏覽器中開啟notebook頁面地址:http://localhost:8888 。Jupyter Notebook是一種 Web 應用,能讓使用者將說明文字、數學方程、程式碼和視覺化內容全部組合到一個易於共享的文件中。
  • Spyder:直接點選開啟IDE。最大優點就是模仿MATLAB的“工作空間”
  • Anaconda Prompt : 命令列終端
  • 支援其他IDE,如Pycharm

安裝包管理,

  • 列出已經安裝的包:在命令提示符中輸入pip list或者用conda list
  • 安裝新包:在命令提示符中輸入pip install 包名,或者conda install 包名
  • 更新包: conda update package_name
  • 升級所有包: conda upgrade --all
  • 解除安裝包:conda remove package_names
  • 搜尋包:conda search search_term

管理環境:

  • 安裝nb_conda,用於notebook自動關聯nb_conda的環境
  • 建立環境:在Anaconda終端中 conda create -n env_name package_names[=ver]
  • 使用環境:在Anaconda終端中 activate env_name
  • 離開環境:在Anaconda終端中 deactivate
  • 匯出環境設定:conda env export > environmentName.yaml 或 pip freeze > environmentName.txt
  • 匯入環境設定:conda env update -f=/path/environmentName.yamlpip install -r /path/environmentName.txt
  • 列出環境清單:conda env list
  • 刪除環境: conda env remove -n env_name

NumPy


官方網站: http://numpy.org

NumPy是使用Python進行科學計算的基礎包。它包含其他內容:

  • 一個強大的N維陣列物件
  • 複雜的(廣播)功能
  • 用於整合C / C ++和Fortran程式碼的工具
  • 有用的線性代數,傅立葉變換和隨機數功能

除了明顯的科學用途外,NumPy還可以用作通用資料的高效多維容器。可以定義任意資料型別。這使NumPy能夠無縫快速地與各種資料庫整合。

NumPy根據BSD許可證授權,只需很少的限制即可重複使用。

入門

有關SciPy Stack(NumPy提供基本陣列資料結構)的更多資訊,請參閱scipy.org

維基百科 NumPy

NumPyPython語言的一個擴充套件程式庫。支援高階大量的維度陣列矩陣運算,此外也針對陣列運算提供大量的數學函式。NumPy的前身Numeric最早是由Jim Hugunin與其它協作者共同開發,2005年,Travis Oliphant在Numeric中結合了另一個同性質的程式庫Numarray的特色,並加入了其它擴充套件而開發了NumPy。NumPy為開放原始碼並且由許多協作者共同維護開發。

特色

NumPy參考CPython(一個使用位元組碼直譯器),而在這個Python實現直譯器上所寫的數學演算法程式碼通常遠比編譯過的相同程式碼要來得慢。為了解決這個難題,NumPy引入了多維陣列以及可以直接有效率地操作多維陣列的函式與運算子。因此在NumPy上只要能被表示為針對陣列或矩陣運算的演算法,其執行效率幾乎都可以與編譯過的等效C語言程式碼一樣快。

NumPy提供了與MATLAB相似的功能與操作方式,因為兩者皆為解釋型語言,並且都可以讓使用者在針對陣列或矩陣運算時提供較標量運算更快的效能。兩者相較之下,MATLAB提供了大量的擴充套件工具箱(例如Simulink);而NumPy則是根基於Python這個更現代、完整並且開放原始碼的程式語言之上。此外NumPy也可以結合其它的Python擴充套件庫。例如SciPy,這個庫提供了更多與MATLAB相似的功能;以及Matplotlib,這是一個與MATLAB內建繪圖功能類似的庫。而從本質上來說,NumPy與MATLAB同樣是利用BLASLAPACK來提供高效率的線性代數運算。

ndarray 資料結構

NumPy的核心功能是"ndarray"(即n-dimensional array,多維陣列)資料結構。這是一個表示多維度、同質並且固定大小的陣列物件。而由一個與此陣列相關係的資料型別物件來描述其陣列元素的資料格式(例如其字元組順序、在儲存器中佔用的字元組數量、整數或者浮點數等等)。

相關文章