Numpy 定義:NumPy(Numerical Python) 是 Python 語言的一個擴展程式庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。它主要用於數組計算,包括: 一個強大的N維數組對象 ndarray 廣播功能函數 整合 C/C++/Fortran 代碼的工 ...
Numpy
定義:NumPy(Numerical Python) 是 Python 語言的一個擴展程式庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。它主要用於數組計算,包括:
- 一個強大的N維數組對象 ndarray
- 廣播功能函數
- 整合 C/C++/Fortran 代碼的工具
- 線性代數、傅里葉變換、隨機數生成等功能
1、ndarray : ndarray是一系列同類型數據的集合,以 0 下標為開始進行集合中元素的索引。創建一個 ndarray 只需調用 NumPy 的 array 函數即可。
2、參數說明:
名稱 | 描述 |
object | 數組或嵌套的數列 |
dtype | 數組元素的數據類型,可選 |
copy | 對象是否需要複製,可選 |
order | 創建數組的樣式,C為行方向,F為列方向,A為任意方向(預設) |
subok | 預設返回一個與基類型一致的數組 |
ndmin | 指定生成數組的最小維度 |
實例:
3、數據類型
名稱 | 描述 |
bool_ | 布爾型數據類型(True 或者 False) |
int_ | 預設的整數類型(類似於 C 語言中的 long,int32 或 int64) |
intc | 與 C 的 int 類型一樣,一般是 int32 或 int 64 |
int32 | 整數(-2147483648 to 2147483647) |
uint8 | 無符號整數(0 to 255) |
float_ | float64 類型的簡寫 |
complex_ | complex128 類型的簡寫,即 128 位複數 |
numpy.dtype(object, align, copy) : object - 要轉換為的數據類型對象; align - 如果為 true,填充欄位使其類似 C 的結構體; copy - 複製 dtype 對象 ,如果為 false,則是對內置數據類型對象的引用。
實例:
4、數組屬性
(1)numpy 數組的維數稱為秩(rank),秩就是軸的數量,即數組的維度,一維數組的秩為 1,二維數組的秩為 2,以此類推。每一個線性的數組稱為是一個軸(axis),也就是維度(dimensions)。比如說,二維數組相當於是兩個一維數組,其中第一個一維數組中每個元素又是一個一維數組。
屬性 | 說明 |
ndarray.ndim | 秩,即軸的數量或維度的數量 |
ndarray.shape | 數組的維度,對於矩陣,n 行 m 列 |
ndarray.size | 數組元素的總個數,相當於 .shape 中 n*m 的值 |
ndarray.dtype | ndarray 對象的元素類型 |
ndarray.real(imag) | ndarray元素的實(虛)部 |
ndarray.itemsize | ndarray 對象中每個元素的大小,以位元組為單位 |
實例:
5、創建數組
- numpy.empty 方法用來創建一個指定形狀(shape)、數據類型(dtype)且未初始化的數組 numpy.empty(shape, dtype = float, order = 'C')
-
numpy.zeros 創建指定大小的數組,數組元素以 0 來填充 numpy.zeros(shape, dtype = float, order = 'C')
-
numpy.ones 創建指定形狀的數組,數組元素以 1 來填充 numpy.ones(shape, dtype = None, order = 'C')
- numpy.asarray 類似 numpy.array,但 numpy.asarray 參數只有三個,比 numpy.array 少兩個
- numpy.arange 函數創建數值範圍並返回 ndarray 對象 numpy.arange(start, stop, step, dtype) (start:起始值,預設為
0 ;stop:終止值(不包含) step:步長,預設為
1; dtype:返回
ndarray
的數據類型,如果沒有提供,則會使用輸入數據的類型。)
7、切片和索引: slice 函數
8、廣播:對不同形狀(shape)的數組進行數值計算的方式, 對數組的算術運算通常在相應的元素上進行。
9、Matplotlib:
實例:
import numpy as np from matplotlib import pyplot as plt x = np.arange(1,11) y = 2 * x - 1 plt.title("demo") plt.xlabel("x axis caption") plt.ylabel("y axis caption") plt.plot(x,y) plt.show()
效果: