numpy.ma.fromfunction#
- ma.fromfunction(function, shape, **dtype) = <numpy.ma.core._convert2ma object>#
透過對每個座標執行函數來建構陣列。
因此,產生的陣列在座標
(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。- likearray_like,選用
參考物件,允許建立非 NumPy 陣列的陣列。如果作為
like
傳入的類陣列物件支援__array_function__
協定,則結果將由其定義。在這種情況下,它確保建立與透過此引數傳入的物件相容的陣列物件。在 1.20.0 版本中新增。
- 返回:
- fromfunction: MaskedArray
對 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]])