文章目錄
- 1.numpy簡介
- 2.安裝numpy
- 3.ndarry : numpy庫的心臟
- 3.1 創建數組
- 3.2數據類型
- 3.3dtype
NumPy是用Python.進行科學計算,尤其是數據分析時,所用到的一個基礎庫。它是大量Python
數學和科學計算包的基礎,比如后面要講到的pandas)庫就用到了NumPy。pandas庫專門用于數據
分析,充分借鑒了Python標準庫NumPy的相關概念。而Python標準庫所提供的內置工具對數據分
析方面的大多數計算來說都過于簡單或不夠用。
1.numpy簡介
Pytho語言誕生不久,開發人員就產生了數值計算的需求,更為重要的是,科學社區開始考
慮用它進行科學計算。
1995年,Jim Hugunin開發了Numeric,這是第一次嘗試用Python進行科學計算。隨后又誕生了
Numarray包。這兩個包都是專門用于數組計算的,但各有各的優勢,開發人員只好根據不同的使用
場景,從中選擇效率更高的包。由于兩者之間的區別并不那么明確,開發人員產生了把它們整合為
.個包的想法。Travis Oliphanti遂著手開發NumPyl庫,并于2006年發布了它的第一個版本(v1.0)。
從此之后,NumPy成為Python科學計算的擴展包。如今,在計算多維數組和大型數組方面,
它是使用最廣的。此外,它還提供多個函數,操作起數組來效率很高,還可用來實現高級數學運
算。
當前,NumPyz是開源項目,使用BSD許可證。在眾多開發者的支持下,這個庫的潛力得到了
進一步挖掘。
2.安裝numpy
pip install numpy
3.ndarry : numpy庫的心臟
整個NumPy庫的基礎是ndarray(N-dimensional array,W維數組)對象。它是一種由同質元素
組成的多維數組,元素數量是事先指定好的。同質指的是幾乎所有元素的類型和大小都相同。事
實上,數據類型由另外一個叫作dtype(data-ype,數據類型)的NumPy對象來指定;每個ndarray
只有一種dtype類型。
數組的維數和元素數量由數組的型(shape)來確定,數組的型由N個正整數組成的元組來指
定,元組的每個元素對應每一維的大小。數組的維統稱為軸(axes),軸的數量被稱作秩(rank)。
NumPy數組的另一個特點是大小固定,也就是說,創建數組時一旦指定好大小,就不會再發
生改變。這與Python的列表有所不同,列表的大小是可以改變的。
定義ndarray最簡單的方式是使用array()函數,以Python列表作為參數,列表的元素即是
ndarray的元素。
import numpy as np
a = np.array([1,2,3])
print(a[1])
3.1 創建數組
數組的創建方法有幾種,最常用的就是前面你見過的,使用arry()函數,參數為單層或嵌套列表。
import numpy as np
a = np.array([[1,2,3],[1,2,3]])
print(a)
除了列表,array()函數還可以接收嵌套元組或元組列表作為參數。
a = np.array(((1,2,3),(1,2,3)))
print(a)
此外,參數可以是由元組或列表組成的列表,其效果相同。
a = np.array(((1,2,3),[1,2,3],(1,2,3)))
print(a)
3.2數據類型
到目前為止,我們只使用過簡單的整型和浮點型數據類型,其實NuPy數組能夠包含多種數據類型。
3.3dtype
array()函數可以接收多個參數。每個ndarray()對象都有一個與之相關聯的dtype對象,該對
象唯一定義了數組中每個元素的數據類型。array()函數默認根據列表或元素序列中各元素的數
據類型,為ndarray()對象指定最適合的數據類型。但是,你可以用dtypej選項作為函數array()
的參數,明確指定dtypel的類型。
例如,如要定義一個復數數組,可以像下面這樣使用dtype選項:
a = np.array(((1,2,3),[1,2,3],(1,2,3)),dtype=complex)
print(a)