numpy、scipy、pandas


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

  What is numpy?

  標准安裝的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中做科學計算的工具集,也就是說它是更上一個層次的庫,主要包含一下模塊:

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

  What is pandas?

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

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

  比如,要是沒有pandas,對某行元素的操作或是說轉置可能需要很多循環。

  • 靈活處理丟失數據。
  • 在常用的基於數據的數據庫(例如基於SQL)中的合並和其它關系操作。
  • 提供數據結構:Series和DataFrame

  

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM