numpy --- 與 numpy 相容的陣列運算

ulabnumpy 子模組提供一套與 numpy 相容的 API,圍繞 ndarray n 維陣列型別建構。它實作了 CPython numpy 經精選的子集:陣列建構、逐元素數學運算、歸約與統計、線性代數、FFT、亂數產生、多項式擬合,以及基本 I/O。

此子模組依慣例匯入為 np:

from ulab import numpy as np

a = np.array([1, 2, 3, 4], dtype=np.float)
b = np.linspace(0, 1, num=5)
c = np.dot(a.reshape((2, 2)), a.reshape((2, 2)))

每個 dtype 引數是模組層級公開的整數常數之一:numpy.boolnumpy.uint8numpy.int8numpy.uint16numpy.int16numpy.float(預設值)。結果型別 ndarray 指的是 numpy.ndarray

子模組

class ndarray --- n 維陣列

ndarraynumpy / ulab 核心的 n 維、可感知 dtype 的容器。資料儲存在一塊連續的記憶體區塊中,其解讀方式由一個小型標頭描述(dtypeshapestridesndimitemsize)。許多運算——reshapetranspose、切片——只會調整這個標頭,因此非常廉價;而會配置新儲存空間的方法(copyflatten、大部分算術運算)則回傳一個新的稠密陣列。

同一型別可透過 ulab.ndarraynumpy.ndarray,以及(在本頁中)直接以 ndarray 來存取。

class numpy.ndarray(values: ndarray | bytes | list | tuple, *, dtype: int = numpy.float)

建立一個新的 ndarray

參數:
  • values -- 來源資料。可以是另一個 ndarray(會被深度複製,若 dtype 不同則進行型別轉換),或是任何 MicroPython 可迭代物件。巢狀的可迭代物件會產生多維陣列;內層的可迭代物件必須全部具有相同長度,否則會引發 ValueError

  • dtype -- 新陣列的元素型別。numpy 公開的型別代碼整數之一(numpy.boolnumpy.uint8numpy.int8numpy.uint16numpy.int16numpy.float),或 dtype 實例。預設為 numpy.float

工廠函式 numpy.array 是建立 ndarray 的慣用方式;它會轉呼叫此建構式。

byteswap(*, inplace: bool = False) ndarray

交換每個元素的位元組順序。對於 uint16int16float 陣列,這將反轉每個元素的位元組順序,在處理來自位元組順序與微控制器不同的周邊裝置資料時非常有用。對於單位元組型別(booluint8int8),這是一個無操作,傳回視圖或副本。

inplaceFalse(預設值),則回傳一個新的 ndarray,原陣列保持不變。若 inplaceTrue,則就地交換 self 的位元組,並回傳 self 的一個視圖。

copy() ndarray

回傳陣列的一個全新稠密深度副本。此副本擁有自己的資料;對它的修改不會影響原陣列。

flatten(*, order: str = 'C') ndarray

回傳陣列的一個全新一維副本。

參數:

order -- 'C'(預設值)以 C 順序走訪資料(最後一軸變化最快);'F' 以 Fortran 順序走訪(第一軸變化最快)。

reshape(shape: int | tuple[int, ...]) ndarray

回傳具有新形狀的陣列視圖。元素總數必須維持不變,否則會引發 ValueError。僅在 ULAB_MAX_DIMS > 1 時可用。等同於對 shape 進行賦值。

sort(*, axis: int | None = -1) None

就地排序陣列。

參數:

axis -- 排序所沿的軸。-1(預設值)沿最後一軸排序;None 則先將陣列展平再排序。

tobytes() bytearray

回傳一個別名指向陣列底層資料緩衝區的 bytearray。透過回傳的 bytearray 寫入會就地修改陣列。若陣列並非稠密(例如為切片視圖)則引發 ValueError

tolist() list

以(可能巢狀的)Python list 形式回傳陣列的內容。巢狀深度等於 ndim

transpose() ndarray

回傳陣列的轉置(軸反轉)。對於一維陣列,這會回傳 self。僅在 ULAB_MAX_DIMS > 1 時可用。T 屬性是此方法的簡寫。

dtype: dtype | int

陣列元素的資料型別。當韌體以啟用 ULAB_HAS_DTYPE_OBJECT 建構時,回傳一個 dtype 實例,否則以整數形式回傳底層的單字元型別碼。

flat: flatiter

以 C 順序逐一產出陣列每個元素的扁平迭代器。與 flatten() 不同,迭代 flat 不會配置新陣列。

itemsize: int

單一陣列元素的位元組大小,由 dtype 推導而得。

ndim: int

陣列的維度數(shape 的長度)。

shape: tuple[int, ...]

陣列沿每一軸的長度。將一個元組賦值給 shape 會就地重塑陣列形狀(等同於 reshape())。

size: int

陣列中的元素總數(shape 的乘積)。

strides: tuple[int, ...]

沿每一軸在記憶體中步進至該軸下一個元素所需的位元組數。

T: ndarray

陣列的轉置;等同於 transpose()

支援的運算子

ndarray 實例支援以下運算子。二元運算子依照 numpy 標準廣播規則對運算元進行廣播,並遵循 numpy 的型別提升規則(例如 uint8 + int8 => int16uint16 + int16 => float)。

算術運算(二元): +-*///%**。同時支援反射(右側)運算元和原地變體 +=-=*=/=%=**=ndarray-與-ndarrayndarray-與-純量兩種形式均可接受。

比較: ==!=<<=>>=。每個運算子皆回傳一個廣播形狀的布林 ndarray

位元運算(僅限整數陣列): &|^。將這些操作套用於 float 陣列會引發 TypeError

一元: +(回傳副本)、-(取負;對無號 dtype,數值會以模 \(2^N\) 環繞)、abs()(逐元素絕對值;對無號 dtype 回傳副本而不進行計算)、~(位元反相,僅限整數 dtype)、len()(回傳第一軸的長度)。

索引與切片: a[i]a[i, j, ...]a[start:stop:step]、布林遮罩索引(a[mask])以及整數陣列(花式)索引在讀取與寫入時皆受支援。

迭代: 迭代 ndarray 會沿第一軸產出子陣列(對 1 維陣列則一次產出一個元素)。請使用 flat 來迭代每個純量元素,不受維度影響。

矩陣乘法運算子 @ 未實作;請改用 numpy.dotnp.dot(a, b))。

位移運算子(<<>>)未在運算子層級實作。逐元素整數位移請使用 numpy.left_shiftnumpy.right_shift

陣列建構

numpy.array(values: ndarray | list | tuple, *, dtype: int = float) ndarray

從一個巢狀的數字可迭代物件建構一個新的 ndarraynumpy.ndarray 的等效替代建構式。

numpy.arange(start: int | float, stop: int | float | None = None, step: int | float = 1, *, dtype: int | None = None) ndarray

在半開區間 [start, stop) 上回傳間隔均勻的值。若只給定一個位置引數,則將其視為 stop 並令 start = 0。若省略 dtype,則由輸入推斷(若 startstopstep 皆為整數且在範圍內,則為整數)。

numpy.asarray(a: ndarray | list | tuple, *, dtype: int | None = None) ndarray

a 已是 dtype 與 dtype 相符的 ndarray(或 dtypeNone),則原樣回傳 a;否則建立一個新陣列(給定時進行所要求的 dtype 轉換)。可迭代物件的轉換方式與 numpy.array 相同。

numpy.concatenate(arrays: tuple, *, axis: int = 0) ndarray

沿既有的 axis 連接一系列 ndarray。所有輸入陣列必須共享相同的 dtype、ndim,以及除 axis 之外每一軸上的形狀。

numpy.diag(a: ndarray, *, k: int = 0) ndarray

對於 2 維的 a,回傳一個包含第 k 條對角線的 1 維陣列。對於 1 維的 a,回傳一個 2 維方陣,並將 a 置於第 k 條對角線上。k 可為正(主對角線之上)或負(主對角線之下)。

numpy.empty(shape: int | tuple[int, ...], *, dtype: int = float) ndarray

zeros 的別名;回傳一個以 shapedtype 為形狀型別且填零的陣列。(ulab 不會讓緩衝區未初始化。)

numpy.eye(N: int, M: int | None = None, k: int = 0, *, dtype: int = float) ndarray

回傳一個 2 維 N x M 陣列(若 MNone 則為 N x N 方陣),第 k 條對角線為 1,其餘為 0。

numpy.frombuffer(buffer: bytes, *, dtype: int = float, count: int = -1, offset: int = 0) ndarray

將一個遵循緩衝區協定的物件解讀為 dtype 的 1 維 ndarraycount 是要讀取的項目數(-1 讀取所有可用項目);offset 會略過緩衝區開頭那麼多的位元組。

numpy.full(shape: int | tuple[int, ...], fill_value: int | float | bool, *, dtype: int = float) ndarray

回傳一個以 shapedtype 為形狀型別、每個元素皆設為 fill_value 的新陣列。

numpy.linspace(start: float, stop: float, num: int = 50, *, endpoint: bool = True, retstep: bool = False, dtype: int = float) ndarray | tuple[ndarray, float]

在閉區間 [start, stop] 上傳回 num 個均勻間隔的樣本(若 endpointFalse 則為半開區間)。當 retstepTrue 時,傳回元組 (samples, step)

numpy.logspace(start: float, stop: float, num: int = 50, *, base: float = 10.0, endpoint: bool = True, dtype: int = float) ndarray

回傳 num 個在對數刻度上間隔均勻的取樣點:結果起於 base ** start,終於 base ** stop

numpy.meshgrid(*xi: ndarray, indexing: str = 'xy') tuple[ndarray, ...]

從一系列一維座標陣列回傳一個座標矩陣元組。當 indexing'xy'(預設值)時,前兩個輸入被視為笛卡兒座標,其輸出軸會互換;當為 'ij' 時則使用矩陣式索引。其實作對應於 NumPy 中 copy=Truesparse=False 的等效行為。

numpy.ones(shape: int | tuple[int, ...], *, dtype: int = float) ndarray

回傳一個以 shapedtype 為形狀型別、以 1 填滿的新陣列。

numpy.zeros(shape: int | tuple[int, ...], *, dtype: int = float) ndarray

回傳一個以 shapedtype 為形狀型別、以 0 填滿的新陣列。

檢視 / 列印

numpy.get_printoptions() dict

以一個帶有 thresholdedgeitems 鍵的 dict 回傳目前的陣列列印選項。

numpy.set_printoptions(*, threshold: int | None = None, edgeitems: int | None = None) None

設定陣列列印選項。threshold 是完整列印的陣列元素最大數量;edgeitems 是當陣列被摘要顯示時,每軸兩端各顯示的項目數。

numpy.ndinfo(array: ndarray) None

列印關於 array 的診斷資訊(shape、strides、dtype、itemsize、...)。

numpy.size(a: ndarray, *, axis: int | None = None) int

回傳 a 沿 axis 的元素數量;若 axisNone,則回傳元素總數(ndarray.shape 的乘積)。

比較

numpy.clip(a: ndarray | int | float, a_min: ndarray | int | float, a_max: ndarray | int | float) ndarray | int | float

裁剪 a 的值,使得 a_min <= result <= a_max。等同於 maximum(a_min, minimum(a, a_max));廣播遵循與 minimum 相同的規則。

numpy.equal(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | bool

逐元素 x1 == x2;回傳一個布林 ndarray(若兩個輸入皆為純量則回傳 bool 純量)。為可攜性而提供——對陣列使用 == 運算子可得到相同結果。

numpy.not_equal(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | bool

逐元素 x1 != x2equal 的布林對應運算。

numpy.isfinite(x: ndarray | int | float) ndarray | bool

回傳一個布林陣列(或純量),輸入為有限值處為 True。整數輸入永遠為有限值。

numpy.isinf(x: ndarray | int | float) ndarray | bool

回傳一個布林陣列(或純量),輸入為無限值處為 True。整數輸入永遠不為無限值。

numpy.maximum(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | int | float

兩個陣列/純量的逐元素最大值。引數會一起進行廣播;若 dtype 不同,則輸出會向上提升型別。

numpy.minimum(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | int | float

兩個陣列/純量的逐元素最小值;maximum 的對應運算。

numpy.nonzero(a: ndarray) tuple[ndarray, ...]

回傳一個 ndarray 元組,a 的每個維度各一個,包含 a 中非零元素的索引。

numpy.where(condition: ndarray | int | float, x: ndarray | int | float, y: ndarray | int | float) ndarray

回傳一個 ndarray,其元素在 condition 為真處取自 x,否則取自 y。三個輸入會一起進行廣播;輸出 dtype 為 xy 的向上提升型別。

數值歸約

numpy.all(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | bool

測試沿 axis 的所有元素是否皆為 True。當 axis=None(預設值)時,測試展平後的陣列並回傳單一 bool

numpy.any(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | bool

測試沿 axis 是否有任何元素為 True。當 axis=None 時,測試展平後的陣列。

numpy.argmax(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | int

回傳沿 axis 最大元素的索引。當 axis=None 時,陣列會被展平並回傳單一整數。

numpy.argmin(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | int

回傳沿 axis 最小元素的索引。當 axis=None 時,陣列會被展平並回傳單一整數。

numpy.argsort(a: ndarray, *, axis: int = -1) ndarray

回傳一個無號整數索引 ndarray,其各項可將 a 沿 axis 以遞增順序排序。輸出 dtype 為 uint16,因此任何軸都不得超過 65535 個元素。不支援 axis=None

numpy.cross(a: ndarray, b: ndarray) ndarray

回傳兩個長度為 3 的 1 維陣列的外積。

numpy.diff(a: ndarray, *, n: int = 1, axis: int = -1) ndarray

回傳 a 沿 axis 的第 n 階離散前向差分。n 必須在 0..9 之間(差分模板儲存於 int8 中);axis 的長度會縮減 n。numpy 的 prependappend 關鍵字未實作。

numpy.flip(a: ndarray, *, axis: int | None = None) ndarray

回傳一個新陣列,元素沿 axis 順序反轉;當 axis=None 時,陣列沿每一軸皆反轉。

numpy.max(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | int | float

回傳沿 axis 的最大元素。當 axis=None(預設值)時,展平後的陣列會被歸約為一個純量。numpy 的 out 關鍵字未實作。

numpy.min(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | int | float

回傳沿 axis 的最小元素;max 的對應運算。

numpy.mean(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | float

回傳沿 axis 的算術平均值。當 axis=None(預設值)時,回傳展平後陣列的平均值,型別為 float

numpy.median(a: ndarray, *, axis: int | None = None) ndarray | float

回傳沿 axis 的中位數。當 axis=None 時,陣列會先被展平。輸出 dtype 永遠為 float。

numpy.roll(a: ndarray, shift: int, *, axis: int | None = None) ndarray

回傳 a,其元素被滾動(循環移位)shift 個位置。當 axis=None(預設值)時,陣列會先被展平。負位移會以相反方向滾動。

numpy.sort(a: ndarray, *, axis: int = -1) ndarray

使用堆積排序回傳 a 沿 axis 的已排序副本。當 axis=None 時,陣列會先被展平。numpy 的 kindorder 關鍵字未實作。

numpy.std(a: ndarray | list | tuple, *, axis: int | None = None, ddof: int = 0, keepdims: bool = False) ndarray | float

回傳沿 axis 的標準差。ddof 是差量自由度——所用的除數為 N - ddof

numpy.sum(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | int | float

回傳沿 axis 的總和。當 axis=None 時,以純量形式回傳展平後陣列的總和。

統計

numpy.bincount(x: ndarray, *, weights: ndarray | None = None, minlength: int | None = None) ndarray

計算一維、非負整數陣列 x 中每個值出現的次數。x 的 dtype 必須為 uint8uint16。若給定 weights,則 x 的每一項貢獻其相符的權重而非 1,且輸出 dtype 為 float;否則輸出 dtype 為 uint16。若給定 minlength,則輸出陣列至少有那麼多的元素(多出的項目為零)。

numpy.trace(m: ndarray) int | float

回傳方陣 m 對角線元素的總和。回傳型別遵循 m 的 dtype(整數陣列產生 int,float 陣列產生 float)。

轉換

numpy.compress(condition: ndarray | list | tuple, a: ndarray, *, axis: int | None = None) ndarray

回傳 a 中由布林 condition 沿 axis 所選取的切片。當 axis=None 時,使用展平後的陣列。

numpy.delete(a: ndarray, indices: int | ndarray | list | tuple | range, *, axis: int | None = None) ndarray

回傳 a 的副本,其中位於 indices 的項目沿 axis 被移除。當 axis=None 時,陣列會先被展平。負索引從 axis 的尾端起算;indices 在刪除前會於內部先行排序。

numpy.dot(m1: ndarray, m2: ndarray) ndarray | float

回傳兩個陣列的點積。對於兩個 1 維陣列,這是內積(一個 float 純量)。對於 2 維陣列,這是矩陣乘法;內維度必須相符。結果 dtype 永遠為 float

近似

numpy.interp(x: ndarray, xp: ndarray, fp: ndarray, *, left: float | None = None, right: float | None = None) ndarray

一維線性內插。xp 必須是一個單調遞增的 1 維自變數陣列;fp 包含對應的應變數值;x 是要評估內插值的點。leftright 分別覆蓋 x < xp[0]x > xp[-1] 時所回傳的值(預設值:fp[0]fp[-1])。

numpy.trapz(y: ndarray, x: ndarray | None = None, dx: float = 1.0) float

使用複合梯形法則對 y 進行積分。若給定 x,則它提供對應於 y 的取樣位置;否則使用間距 dxy(與 x)必須為 1 維。

選取

numpy.take(a: ndarray, indices: ndarray | list | tuple, *, axis: int | None = None, out: ndarray | None = None, mode: str | None = None) ndarray

a 中沿 axis 取出位於給定 indices 的元素。當 axis=None 時,使用展平後的陣列。mode 選擇越界行為:"raise"(預設值——引發 ValueError)、"wrap"(對軸長取模)或 "clip"(裁剪至有效範圍;不允許負索引)。若給定 out,則結果寫入其中。

位元運算

numpy.bitwise_and(x1: ndarray, x2: ndarray) ndarray

兩個整數陣列的逐元素位元 AND;支援廣播。非整數 dtype 會引發例外。

numpy.bitwise_or(x1: ndarray, x2: ndarray) ndarray

兩個整數陣列的逐元素位元 OR。

numpy.bitwise_xor(x1: ndarray, x2: ndarray) ndarray

兩個整數陣列的逐元素位元 XOR。

numpy.left_shift(x1: ndarray, x2: ndarray) ndarray

x1 逐元素左移 x2 位元;兩個陣列都必須為整數 dtype。

numpy.right_shift(x1: ndarray, x2: ndarray) ndarray

x1 逐元素右移 x2 位元;兩個陣列都必須為整數 dtype。

濾波

numpy.convolve(a: ndarray, v: ndarray) ndarray

回傳兩個 1 維陣列的離散線性卷積。僅支援 "full" 模式;不接受 numpy 的 mode 關鍵字(其他模式可透過對完整結果切片取得)。輸出長度為 len(a) + len(v) - 1

多項式

numpy.polyfit(x: ndarray | list | tuple, y: ndarray | list | tuple, deg: int) ndarray
numpy.polyfit(y: ndarray | list | tuple, deg: int) ndarray

以最小平方法將一個 deg 次多項式擬合至資料點 (x, y),並回傳多項式係數(最高次方在前)。若省略 x,則使用 range(len(y))。若 xy 的長度不同則引發 ValueError

numpy.polyval(p: ndarray | list | tuple, x: ndarray | list | tuple | int | float) ndarray | float

x 處評估係數為 p(最高次方在前)的多項式。若 x 為純量則回傳 float,否則回傳 ndarray

I/O

numpy.load(file: str) ndarray

file 讀取先前以 save 寫入的陣列(numpy 與平台無關的 .npy 格式)。若檔案的位元組序與主機不同,則會即時轉換位元組序。

numpy.loadtxt(file: str, *, delimiter: str | None = None, comments: str = '#', max_rows: int = -1, usecols: int | ndarray | list | tuple | None = None, dtype: int = float, skiprows: int = 0) ndarray

從文字 file 讀取數值資料,並以 ndarray 形式回傳。delimiter 預設為空白字元;comments 是行內註解標記;max_rows 限制讀取的資料列數(-1 表示全部);usecols 依索引選擇欄;skiprows 略過那麼多的開頭列。若 dtype 不是 float,數值會以四捨五入方式轉換。

numpy.save(file: str, a: ndarray) None

以 numpy 與平台無關的 .npy 格式將 a 儲存至 file

numpy.savetxt(file: str, a: ndarray, *, delimiter: str = ' ', header: str | None = None, footer: str | None = None, comments: str = '# ') None

以文字形式將 a 寫入 filedelimiter 分隔列內的各值;若提供 headerfooter,則分別寫於資料的前/後,各以 comments 作為前綴。數值以浮點數形式寫入。

通用函式

逐元素數學函式。每個函式接受一個純量或一個 ndarray,並回傳形狀相符的結果(純量輸入回傳 float 純量,陣列輸入回傳 ndarray)。當以 ndarray 呼叫時,結果是一個新的浮點 ndarray;可傳入一個可選的 out 關鍵字,將結果寫入一個預先配置且大小相同的 float ndarray

numpy.acos(x: ndarray | float, /) ndarray | float

計算 x 每個元素的反餘弦(arc cosine);結果以弧度表示。

numpy.acosh(x: ndarray | float, /) ndarray | float

計算 x 每個元素的反雙曲餘弦。

numpy.arctan2(y: ndarray | float, x: ndarray | float, /) ndarray | float

逐元素計算雙引數反正切 atan2(y, x);支援兩個輸入之間的廣播。

numpy.around(x: ndarray, /, decimals: int = 0) ndarray

ndarray x 的元素四捨五入至給定的 decimals 小數位數;第一個引數必須是一個 ndarray

numpy.asin(x: ndarray | float, /) ndarray | float

計算 x 每個元素的反正弦(arc sine);結果以弧度表示。

numpy.asinh(x: ndarray | float, /) ndarray | float

計算 x 每個元素的反雙曲正弦。

numpy.atan(x: ndarray | float, /) ndarray | float

計算 x 每個元素的反正切(arc tangent);結果以弧度表示。

numpy.atanh(x: ndarray | float, /) ndarray | float

計算 x 每個元素的反雙曲正切。

numpy.ceil(x: ndarray | float, /) ndarray | float

計算 x 每個元素的天花板值(不小於該值的最小整數)。

numpy.cos(x: ndarray | float, /) ndarray | float

計算 x 每個元素的餘弦(以弧度表示)。

numpy.cosh(x: ndarray | float, /) ndarray | float

計算 x 每個元素的雙曲餘弦。

numpy.degrees(x: ndarray | float, /) ndarray | float

x 的每個元素從弧度轉換為度。

numpy.exp(x: ndarray | float, /) ndarray | float

計算 x 中每個元素的指數 e**x

numpy.expm1(x: ndarray | float, /) ndarray | float

計算 x 每個元素的 exp(x) - 1,在接近零處有更佳的精度。

numpy.floor(x: ndarray | float, /) ndarray | float

計算 x 每個元素的地板值(不大於該值的最大整數)。

numpy.log(x: ndarray | float, /) ndarray | float

計算 x 每個元素的自然對數。

numpy.log10(x: ndarray | float, /) ndarray | float

計算 x 每個元素的以 10 為底的對數。

numpy.log2(x: ndarray | float, /) ndarray | float

計算 x 每個元素的以 2 為底的對數。

numpy.radians(x: ndarray | float, /) ndarray | float

x 的每個元素從度轉換為弧度。

numpy.sin(x: ndarray | float, /) ndarray | float

計算 x 每個元素的正弦(以弧度表示)。

numpy.sinc(x: ndarray | float, /) ndarray | float

計算 x 每個元素的正規化 sinc 函式 sin(pi*x) / (pi*x)

numpy.sinh(x: ndarray | float, /) ndarray | float

計算 x 每個元素的雙曲正弦。

numpy.sqrt(x: ndarray | float, /, *, dtype: int = float) ndarray | float

計算 x 中每個元素的平方根。

numpy.tan(x: ndarray | float, /) ndarray | float

計算 x 每個元素的正切(以弧度表示)。

numpy.tanh(x: ndarray | float, /) ndarray | float

計算 x 每個元素的雙曲正切。

numpy.vectorize(f: Callable[[float], float], /, *, otypes: int | None = None) Callable

回傳一個可呼叫物件,將 Python 函式 f 逐元素套用至純量、可迭代物件或 ndarrayotypes 選擇輸出 dtype(預設為 float)。

常數

numpy.e: float

歐拉數 \(e \approx 2.71828\)

numpy.pi: float

\(\pi \approx 3.14159\)

numpy.inf: float

IEEE-754 浮點正無限大。

numpy.nan: float

IEEE-754 浮點「非數值」(not a number)。

numpy.bool: int

布林陣列的 Dtype 碼(以 uint8 儲存)。

numpy.uint8: int

無號 8 位元整數陣列的 Dtype 碼。

numpy.int8: int

有號 8 位元整數陣列的 Dtype 碼。

numpy.uint16: int

無號 16 位元整數陣列的 Dtype 碼。

numpy.int16: int

有號 16 位元整數陣列的 Dtype 碼。

numpy.float: int

32 位元浮點陣列的 Dtype 碼。