numpy、scipy、pandas

  如下分別是numpy、Scipy、pandas的簡介。雖然這些包提供的一些結構比python自身的「更高級、更高效」,更高級是由於它們能完成更高級的任務,可是,學習的時候儘可能不要和python割裂開認識,最好是辯證的看問題,既要看到區別,又要看到聯繫,這樣才能理解深入、真正的運用自如。好比python提供list這種數據結構,能夠用來看成數組使用;好比咱們定義一個list。a=range(10),可是要是對每一個元素同時操做好比平方操做,這時候可能須要寫個循環,就沒有np.arange(10)**2方便。同時,如下的簡介和case中也會從對比和聯繫的角度出發,一塊學習這些概念或是實體。html

  What is numpy?python

  標準安裝的Python中用列表(list)保存一組值,能夠用來看成數組使用,不過因爲列表的元素能夠是任何對象,所以列表中所保存的是對象的指針。這樣爲了保存一個簡單的[1,2,3],須要有3個指針和三個整數對象。對於數值運算來講這種結構顯然比較浪費內存和CPU計算時間。數據庫

  此外Python還提供了一個array模塊,array對象和列表不一樣,它直接保存數值,和C語言的一維數組比較相似。可是因爲它不支持多維,也沒有各類運算函數,所以也不適合作數值運算。數組

  NumPy的誕生彌補了這些不足,NumPy提供了兩種基本的對象:ndarray(N-dimensional array object)和 ufunc(universal function object)。即提供經常使用的數值數組、矩陣等函數。ndarray(下文統一稱之爲數組)是存儲單一數據類型的多維數組,而ufunc則是可以對數組進行處理的函數。數據結構

  優勢是:是基於向量化的運算,進行數值運算時Numpy數組比list效率高函數

  以上部分主要參考《利用numpy作科學計算》一書(點擊書名查看詳細介紹)工具

  What is Scipy?學習

  numpy 準確地說提供了一個在python中作科學計算的基礎庫,俠義地講它重在數值計算,甚至能夠說是用於多維數組處理的庫;而 scipy 則是基於numpy,提供了一個在python中作科學計算的工具集,也就是說它是更上一個層次的庫,主要包含一下模塊:.net

  • statistics
  • optimization
  • numerical integration
  • linear algebra
  • Fourier transforms
  • signal processing
  • image processing
  • ODE solvers
  • special functions

  What is pandas?指針

  是一種構建於Numpy的高級數據結構和精巧工具,快速簡單的處理數據。

  • 支持自動或明確的數據對齊的帶有標籤軸的數據結構。
  • 整合的時間序列功能。
  • 以相同的數據結構來處理時間序列和非時間序列。
  • 支持傳遞元數據(座標軸標籤)的算術運算和縮減。

  好比,要是沒有pandas,對某行元素的操做或是說轉置可能須要不少循環。

  • 靈活處理丟失數據。
  • 在經常使用的基於數據的數據庫(例如基於SQL)中的合併和其它關係操做。
  • 提供數據結構:Series和DataFrame
相關文章
相關標籤/搜索