亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Python NumPy教程

numpy教程NumPy是Python中科學計算的基礎包。它是一個Python庫,提供多維數(shù)組對象,各種派生對象(如掩碼數(shù)組和矩陣),以及用于數(shù)組快速操作的各種API,有包括數(shù)學、邏輯、形狀操作、排序、選擇、輸入輸出、離散傅立葉變換、基本線性代數(shù),基本統(tǒng)計運算和隨機模擬等等。

NumPy 的前身 Numeric 最早是由 Jim Hugunin 與其它協(xié)作者共同開發(fā),2005 年,Travis Oliphant 在 Numeric 中結合了另一個同性質的程序庫 Numarray 的特色,并加入了其它擴展而開發(fā)了 NumPy。NumPy 為開放源代碼并且由許多協(xié)作者共同維護開發(fā)。

NumPy包的核心是 ndarray 對象。它封裝了python原生的同數(shù)據(jù)類型的 n 維數(shù)組,為了保證其性能優(yōu)良,其中有許多操作都是代碼在本地進行編譯后執(zhí)行的。

NumPy數(shù)組 和 原生Python Array(數(shù)組)之間有幾個重要的區(qū)別:

NumPy 數(shù)組在創(chuàng)建時具有固定的大小,與Python的原生數(shù)組對象不同,更改ndarray的大小將創(chuàng)建一個新數(shù)組并刪除原來的數(shù)組。NumPy 數(shù)組元素需具有相同的數(shù)據(jù)類型,因此在內存中的大小相同。NumPy 數(shù)組有助于對大量數(shù)據(jù)進行高級數(shù)學和其他類型的操作。通常,這些操作的執(zhí)行效率更高,比使用Python原生數(shù)組的代碼更少。越來越多的基于Python的科學和數(shù)學軟件包使用NumPy數(shù)組,但它們在處理之前會會將輸入的數(shù)組轉換為NumPy的數(shù)組。

在開學習 NumPy 教程之前,我們需要具備基本的 Python 基礎,本網(wǎng)站推薦使用Python3.x版本,如果你對 Python還不了解,可以閱讀我們的Python教程

為何使用 NumPy?

在 Python 中,我們有滿足數(shù)組功能的列表,但是處理起來很慢。NumPy 旨在提供一個比傳統(tǒng) Python 列表快 50 倍的數(shù)組對象。NumPy 中的數(shù)組對象稱為 ndarray,它提供了許多支持函數(shù),使得利用 ndarray 非常容易。數(shù)組在數(shù)據(jù)科學中非常常用,因為速度和資源非常重要。數(shù)據(jù)科學:計算機科學的一個分支,研究如何存儲、使用和分析數(shù)據(jù)以從中獲取信息。

為什么 NumPy 比列表快?

與列表不同,NumPy 數(shù)組存儲在內存中的一個連續(xù)位置,因此進程可以非常有效地訪問和操縱它們。
這種行為在計算機科學中稱為引用的局部性。
這是 NumPy 比列表更快的主要原因。它還經過了優(yōu)化,可與最新的 CPU 體系結構一同使用。

NumPy 應用

NumPy 通常與 SciPy一起使用,這種組合廣泛用于代替 MatLab,有助于我們通過 Python 學習數(shù)據(jù)科學或者機器學習。SciPy 是一個開源的 Python 算法庫和數(shù)學工具包。SciPy 包含的模塊有最優(yōu)化、線性代數(shù)、積分、插值、特殊函數(shù)、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算。Matplotlib 是 Python 編程語言及其數(shù)值數(shù)學擴展包 NumPy 的可視化操作界面。它為利用通用的圖形用戶界面工具包。

相關資料

NumPy 官網(wǎng):http://www.numpy.orgNumPy 源代碼:https://github.com/numpy/numpySciPy 官網(wǎng):: https://www.scipy.orgSciPy 源代碼:: https://github.com/scipy/scipyMatplotlib 源代碼:: https://matplotlib.orgMatplotlib 源代碼:: https://github.com/matplotlib/matplotlib

Numpy的簡單實例

# 1、安裝包
$ pip install numpy
# 2、進入python的交互式界面
$ python -i
# 3、使用Numpy
>>> from numpy import *
>>> eye(4)
# 4、輸出結果
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])