numpy.fromfunction#
- numpy.fromfunction(function, shape, *, dtype=<class 'float'>, like=None, **kwargs)[原始碼]#
透過對每個座標執行函數來建構陣列。
因此,結果陣列在座標
(x, y, z)
的值為fn(x, y, z)
。- 參數:
- function可呼叫物件
此函數會以 N 個參數呼叫,其中 N 是
shape
的秩。每個參數代表沿特定軸變化的陣列座標。例如,如果shape
為(2, 2)
,則參數會是array([[0, 0], [1, 1]])
和array([[0, 1], [0, 1]])
- shape(N,) 整數元組
輸出陣列的形狀,同時也決定傳遞至 function 的座標陣列形狀。
- dtype資料型態,選用
傳遞至 function 的座標陣列資料型態。預設情況下,
dtype
為 float。- like類陣列,選用
參考物件,允許建立非 NumPy 陣列的陣列。如果作為
like
傳入的類陣列支援__array_function__
協定,則結果將由此協定定義。在這種情況下,它確保建立與透過此引數傳入的物件相容的陣列物件。版本 1.20.0 新增功能。
- 傳回值:
- fromfunction任何
呼叫 function 的結果會直接傳回。因此,
fromfunction
的形狀完全由 function 決定。如果 function 傳回純量值,則fromfunction
的形狀將與shape
參數不符。
註解
除了
dtype
和 like 之外的關鍵字會傳遞至 function。範例
>>> import numpy as np >>> np.fromfunction(lambda i, j: i, (2, 2), dtype=float) array([[0., 0.], [1., 1.]])
>>> np.fromfunction(lambda i, j: j, (2, 2), dtype=float) array([[0., 1.], [0., 1.]])
>>> np.fromfunction(lambda i, j: i == j, (3, 3), dtype=int) array([[ True, False, False], [False, True, False], [False, False, True]])
>>> np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int) array([[0, 1, 2], [1, 2, 3], [2, 3, 4]])