numpy.asarray#

numpy.asarray(a, dtype=None, order=None, *, device=None, copy=None, like=None)#

將輸入轉換為陣列。

引數:
a類陣列物件

輸入資料,可以是任何能轉換為陣列的形式。這包括列表、元組列表、元組、元組的元組、列表的元組以及 ndarray。

dtype資料型別,可選

預設情況下,資料型別是從輸入資料推斷的。

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

輸出的記憶體佈局。“C”表示行優先佈局(C 風格),“F”表示列優先佈局(Fortran 風格)。如有必要,“C”和“F”將進行複製以確保輸出格式。“A”(任意)若輸入 a 是非連續或 Fortran 連續的,則等同於“F”,否則等同於“C”。與“C”或“F”不同,“A”不保證結果是連續的。“K”(保持)是預設值,會為輸出保留輸入資料的記憶體佈局。

devicestr,可選

建立的陣列所在的裝置。預設為 None。僅用於 Array-API 互操作性,因此如果傳遞,必須是 "cpu"

版本 2.0.0 中新增。

copybool, optional

如果為 True,則物件會被複製。如果為 None,則僅在必要時才複製物件,即當 __array__ 返回一個複製、obj 是巢狀序列,或者需要複製以滿足其他要求(dtypeorder 等)時。如果設為 False 且無法避免複製,則會引發 ValueError。預設值:None

版本 2.0.0 中新增。

likearray_like, optional

用於建立非 NumPy 陣列的引薦物件。如果傳入的 like 支援 __array_function__ 協議,則結果將由它定義。在這種情況下,它確保建立與透過此引數傳入的陣列相容的陣列物件。

版本 1.20.0 中新增。

返回:
outndarray

a 的陣列解析。如果輸入本身已經是具有匹配資料型別(dtype)和順序(order)的 ndarray,則不執行複製。如果 a 是 ndarray 的子類,則會返回一個基礎類 ndarray。

另請參閱

asanyarray

類似的函式,會直接傳遞子類。

ascontiguousarray

將輸入轉換為連續陣列。

asfortranarray

將輸入轉換為具有列主序記憶體的 ndarray。

asarray_chkfinite

類似的函式,會檢查輸入是否存在 NaN 和 Inf。

fromiter

從迭代器建立陣列。

fromfunction

透過在網格位置上執行函式來構建陣列。

示例

將列表轉換為陣列

>>> a = [1, 2]
>>> import numpy as np
>>> np.asarray(a)
array([1, 2])

已有的陣列不會被複製

>>> a = np.array([1, 2])
>>> np.asarray(a) is a
True

如果設定了 dtype,僅在 dtype 不匹配時才會複製陣列

>>> a = np.array([1, 2], dtype=np.float32)
>>> np.shares_memory(np.asarray(a, dtype=np.float32), a)
True
>>> np.shares_memory(np.asarray(a, dtype=np.float64), a)
False

asanyarray 不同,ndarray 的子類不會被直接傳遞

>>> issubclass(np.recarray, np.ndarray)
True
>>> a = np.array([(1., 2), (3., 4)], dtype='f4,i4').view(np.recarray)
>>> np.asarray(a) is a
False
>>> np.asanyarray(a) is a
True