numpy.ndarray#

class numpy.ndarray(shape, dtype=np.float64, buffer=None, offset=0, strides=None, order=None)[原始碼]#

陣列物件表示固定大小項的多維、同質陣列。關聯的資料型別物件描述了陣列中每個元素的格式(其位元組順序、在記憶體中佔用的位元組數、是整數、浮點數還是其他什麼,等等)。

陣列應使用 arrayzerosempty(請參閱下面的“另請參閱”部分)來構造。此處給出的引數指的是例項化陣列的底層方法(ndarray(…))。

有關更多資訊,請參閱 numpy 模組,並檢查陣列的方法和屬性。

引數:
(適用於 __new__ 方法;請參閱下面的“註釋”)
shape整數元組

建立陣列的形狀。

dtype資料型別,可選

任何可以解釋為 numpy 資料型別的物件。預設為 numpy.float64

buffer暴露 buffer 介面的物件,可選

用於用資料填充陣列。

offsetint, optional

緩衝區中陣列資料的偏移量。

strides整數元組,可選

記憶體中資料的步幅。

order{‘C’, ‘F’}, optional

行主序(C 風格)或列主序(Fortran 風格)順序。

屬性:
Tndarray

轉置陣列的檢視。

data緩衝區 (buffer)

指向陣列資料起始位置的 Python 緩衝區物件。

dtypedtype 物件

陣列元素的**資料型別**。

flags字典 (dict)

有關陣列記憶體佈局的資訊。

flatnumpy.flatiter 物件

陣列的 1-D 迭代器。

imagndarray

陣列的虛部。

realndarray

陣列的實部。

size整數 (int)

陣列中的元素數量。

itemsize整數 (int)

陣列一個元素佔用的位元組數。

nbytes整數 (int)

陣列元素消耗的總位元組數。

ndim整數 (int)

陣列的維度數。

shape整數元組

陣列的維度元組。

strides整數元組

遍歷陣列時,每個維度需要跳過的位元組數。

ctypesctypes 物件

一個簡化陣列與 ctypes 模組互動的物件。

basendarray

如果記憶體來自其他物件,則為基物件。

方法

all([axis, out, keepdims, where])

如果所有元素都求值為 True,則返回 True。

any([axis, out, keepdims, where])

如果 a 的任何元素評估為 True,則返回 True。

argmax([axis, out, keepdims])

返回沿給定軸的最大值的索引。

argmin([axis, out, keepdims])

返回沿給定軸的最小值索引。

argpartition(kth[, axis, kind, order])

返回將此陣列分割槽將產生的索引。

argsort([axis, kind, order, stable, descending])

返回將此陣列排序的索引。

astype(dtype[, order, casting, subok, copy])

將陣列複製並轉換為指定型別。

byteswap([inplace])

交換陣列元素的位元組

choose(choices[, out, mode])

使用索引陣列從一組選項中構造一個新陣列。

clip([min, max, out])

返回一個值被限制在 [min, max] 範圍內的陣列。

compress(condition[, axis, out])

沿給定軸返回此陣列的選定切片。

conj()

計算所有元素的複共軛。

conjugate()

逐元素返回複共軛。

copy([order])

返回陣列的副本。

cumprod([axis, dtype, out])

返回沿給定軸的元素的累積乘積。

cumsum([axis, dtype, out])

返回沿給定軸的元素的累積和。

diagonal([offset, axis1, axis2])

返回指定的對角線。

dot(other, /[, out])

有關完整文件,請參閱 numpy.dot

dump(file)

將陣列的 pickle 轉儲到指定檔案。

dumps()

將陣列的 pickle 以字串形式返回。

fill(value)

用標量值填充陣列。

flatten([order])

返回陣列的副本,展平成一維。

getfield(dtype[, offset])

以給定型別返回陣列的一個欄位。

item(*args)

將陣列的單個元素複製到標準的 Python 標量並返回。

max([axis, out, keepdims, initial, where])

沿給定軸返回最大值。

mean([axis, dtype, out, keepdims, where])

返回給定軸上陣列元素的平均值。

min([axis, out, keepdims, initial, where])

沿給定軸返回最小值。

nonzero()

返回非零元素的索引。

partition(kth[, axis, kind, order])

部分排序陣列中的元素,使 k-th 位置的元素處於它在已排序陣列中的位置。

prod([axis, dtype, out, keepdims, initial, ...])

返回陣列元素在給定軸上的乘積

put(indices, values[, mode])

對於所有 indices 中的 n,設定 a.flat[n] = values[n]

ravel([order])

返回一個展平的陣列。

repeat(repeats[, axis])

重複陣列中的元素。

reshape(a.reshape)

返回一個具有新形狀的包含相同資料的陣列。

resize(a.resize)

原地更改陣列的形狀和大小。

round([decimals, out])

返回 a,其中每個元素都四捨五入到指定的小數位數。

searchsorted(v[, side, sorter])

查詢元素 v 應該插入到 a 中的索引,以保持順序。

setfield(val, dtype[, offset])

將一個值放入由資料型別定義的指定欄位中。

setflags([write, align, uic])

分別設定陣列標誌 WRITEABLE、ALIGNED、WRITEBACKIFCOPY。

sort([axis, kind, order, stable, descending])

就地排序陣列。

squeeze([axis])

a 中移除長度為一的軸。

std([axis, dtype, out, ddof, keepdims, ...])

返回給定軸上陣列元素的標準差。

sum([axis, dtype, out, keepdims, initial, where])

沿給定軸返回陣列元素的總和。

swapaxes(axis1, axis2, /)

返回陣列的檢視,其中 axis1axis2 已交換。

take(indices[, axis, out, mode])

a 中按給定索引返回一個由元素組成的陣列。

to_device(device, /, *[, stream])

為了 Array API 相容性。

tobytes([order])

構建包含陣列原始資料位元組的 Python bytes 物件。

tofile(fid, /[, sep, format])

將陣列以文字或二進位制(預設)形式寫入檔案。

tolist()

將陣列作為深度為 a.ndim 的巢狀 Python 標量列表返回。

trace([offset, axis1, axis2, dtype, out])

返回陣列對角線上的元素之和。

transpose(*axes)

返回一個檢視,其中陣列的軸已轉置。

var([axis, dtype, out, ddof, keepdims, ...])

返回陣列元素在給定軸上的方差。

view([dtype][, type])

具有相同資料的陣列的新檢視。

另請參閱

array

構造一個數組。

zeros

建立一個數組,其每個元素都為零。

empty

建立一個數組,但保持其已分配的記憶體不變(即,它包含“垃圾”)。

dtype

建立資料型別。

numpy.typing.NDArray

一個 ndarray 別名,相對於其 dtype.type通用型別

備註

使用 __new__ 建立陣列有兩種模式:

  1. 如果 buffer 為 None,則僅使用 shapedtypeorder

  2. 如果 buffer 是一個暴露 buffer 介面的物件,則解釋所有關鍵字。

由於陣列在 __new__ 方法之後已完全初始化,因此不需要 __init__ 方法。

示例

這些示例演示了底層的 ndarray 建構函式。請參閱上方的“參見 (See Also)”部分,瞭解構建 ndarray 的更簡便方法。

第一種模式,buffer 為 None

>>> import numpy as np
>>> np.ndarray(shape=(2,2), dtype=np.float64, order='F')
array([[0.0e+000, 0.0e+000], # random
       [     nan, 2.5e-323]])

第二種模式

>>> np.ndarray((2,), buffer=np.array([1,2,3]),
...            offset=np.int_().itemsize,
...            dtype=np.int_) # offset = 1*itemsize, i.e. skip first element
array([2, 3])