-
numpy
鎖定
- 外文名
-
NumPy
NumPython
- 含 義
- Python的一種開源的科學計算庫
- 內 容
- 提供和處理N維數組對象Array
- 用 途
- 科學計算,數據分析
目錄
numpyNumpy介紹
一個用python實現的科學計算,包括:1、一個強大的N維數組對象Array;2、比較成熟的(廣播)函數庫;3、用於整合C/C++和Fortran代碼的工具包;4、實用的線性代數、傅里葉變換和隨機數生成函數。numpy和稀疏矩陣運算包scipy配合使用更加方便。
NumPy(Numeric Python)提供了許多高級的數值編程工具,如:矩陣數據類型、矢量處理,以及精密的運算庫。專為進行嚴格的數字處理而產生。多為很多大型金融公司使用,以及核心的科學計算組織如:Lawrence Livermore,NASA用其處理一些本來使用C++,Fortran或Matlab等所做的任務。
NumPy 的前身為 Numeric ,最早由 Jim Hugunin 與其它協作者共同開發,2005 年,Travis Oliphant 在 Numeric 中結合了另一個同性質的程序庫 Numarray 的特色,並加入了其它擴展而開發了 NumPy。NumPy 為開放源代碼並且由許多協作者共同維護開發。
[1]
numpy數據類型ndarray
NumPy provides an N-dimensional array type, the ndarray, which describes a collection of “items” of the same type.
NumPy提供了一個N維數組類型ndarray,它描述了相同類型的“items”的集合。
這是因為ndarray中的所有元素的類型都是相同的,而Python列表中的元素類型是任意的,所以ndarray在存儲元素時內存可以連續,而python原生list就只能通過尋址方式找到下一個元素,這雖然也導致了在通用性能方面Numpy的ndarray不及Python原生list,但在科學計算中,Numpy的ndarray就可以省掉很多循環語句,代碼使用方面比Python原生list簡單的多。
numpy內置了並行運算功能,當系統有多個核心時,做某種計算時,numpy會自動做並行計算。
numpyndarray的屬性
empty(shape[, dtype, order])
empty_like(a[, dtype, order, subok])
eye(N[, M, k, dtype, order])
identity(n[, dtype])
ones(shape[, dtype, order])
ones_like(a[, dtype, order, subok])
zeros(shape[, dtype, order])
zeros_like(a[, dtype, order, subok])
full(shape, fill_value[, dtype, order])
full_like(a, fill_value[, dtype, order, subok])
numpyNumPy 數據類型
名稱 | 描述 |
---|---|
bool_ | 布爾型數據類型(True 或者 False) |
int_ | 默認的整數類型(類似於 C 語言中的 long,int32 或 int64) |
intc | 與 C 的 int 類型一樣,一般是 int32 或 int 64 |
intp | 用於索引的整數類型(類似於 C 的 ssize_t,一般情況下仍然是 int32 或 int64) |
int8 | 字節(-128 to 127) |
int16 | 整數(-32768 to 32767) |
int32 | 整數(-2147483648 to 2147483647) |
int64 | 整數(-9223372036854775808 to 9223372036854775807) |
uint8 | 無符號整數(0 to 255) |
uint16 | 無符號整數(0 to 65535) |
uint32 | 無符號整數(0 to 4294967295) |
uint64 | 無符號整數(0 to 18446744073709551615) |
float_ | float64 類型的簡寫 |
float16 | 半精度浮點數,包括:1 個符號位,5 個指數位,10 個尾數位 |
float32 | 單精度浮點數,包括:1 個符號位,8 個指數位,23 個尾數位 |
float64 | 雙精度浮點數,包括:1 個符號位,11 個指數位,52 個尾數位 |
complex_ | complex128 類型的簡寫,即 128 位複數 |
complex64 | 複數,表示雙 32 位浮點數(實數部分和虛數部分) |
complex128 | 複數,表示雙 64 位浮點數(實數部分和虛數部分) |
numpy 的數值類型實際上是 dtype 對象的實例,並對應唯一的字符,包括 np.bool_,np.int32,np.float32,等等。
numpyNumPy 數組屬性
在 NumPy中,每一個線性的數組稱為是一個軸(axis),也就是維度(dimensions)。比如説,二維數組相當於是兩個一維數組,其中第一個一維數組中每個元素又是一個一維數組。所以一維數組就是 NumPy 中的軸(axis),第一個軸相當於是底層數組,第二個軸是底層數組裏的數組。而軸的數量——秩,就是數組的維數。
[3]
很多時候可以聲明 axis。axis=0,表示沿着第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿着第1軸進行操作,即對每一行進行操作。
NumPy 的數組中比較重要 ndarray 對象屬性有:
屬性 | 説明 |
---|---|
ndarray.ndim | 秩,即軸的數量或維度的數量 |
ndarray.shape | 數組的維度,對於矩陣,n 行 m 列 |
ndarray.size | 數組元素的總個數,相當於 .shape 中 n*m 的值 |
ndarray.dtype | ndarray 對象的元素類型 |
ndarray.itemsize | ndarray 對象中每個元素的大小,以字節為單位 |
ndarray.flags | ndarray 對象的內存信息 |
ndarray.real | ndarray元素的實部 |
ndarray.imag | ndarray 元素的虛部 |
ndarray.data | 包含實際數組元素的緩衝區,由於一般通過數組的索引獲取元素,所以通常不需要使用這個屬性。 |
- 參考資料
-
- 1. NumPy 教程 .RUNOOB[引用日期2020-04-24]
- 2. NumPy 數據類型 .RUNOOB[引用日期2020-04-24]
- 3. NumPy數組屬性 .RUNOOB[引用日期2020-04-24]