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 參數不符。

另請參閱

indices, meshgrid

註解

除了 dtypelike 之外的關鍵字會傳遞至 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]])