| # pyright: reportIncompatibleMethodOverride=false |
|
|
| import datetime as dt |
| import types |
| from _typeshed import Incomplete |
| from collections.abc import Callable, Sequence |
| from typing import ( |
| Any, |
| Concatenate, |
| Final, |
| Generic, |
| Literal, |
| Never, |
| NoReturn, |
| Self, |
| SupportsComplex, |
| SupportsFloat, |
| SupportsIndex, |
| SupportsInt, |
| TypeAlias, |
| Unpack, |
| final, |
| overload, |
| ) |
| from typing_extensions import Buffer, ParamSpec, TypeIs, TypeVar, override |
|
|
| import numpy as np |
| from numpy import ( |
| _AnyShapeT, |
| _HasDType, |
| _HasDTypeWithRealAndImag, |
| _ModeKind, |
| _OrderACF, |
| _OrderCF, |
| _OrderKACF, |
| _PartitionKind, |
| _SortKind, |
| _ToIndices, |
| amax, |
| amin, |
| bool_, |
| bytes_, |
| character, |
| complex128, |
| complexfloating, |
| datetime64, |
| dtype, |
| dtypes, |
| expand_dims, |
| flexible, |
| float16, |
| float32, |
| float64, |
| floating, |
| generic, |
| inexact, |
| int8, |
| int64, |
| int_, |
| integer, |
| intp, |
| ndarray, |
| number, |
| object_, |
| signedinteger, |
| str_, |
| timedelta64, |
| ufunc, |
| unsignedinteger, |
| void, |
| ) |
| from numpy._core.fromnumeric import _UFuncKwargs # type-check only |
| from numpy._globals import _NoValueType |
| from numpy._typing import ( |
| ArrayLike, |
| DTypeLike, |
| NDArray, |
| _32Bit, |
| _64Bit, |
| _AnyShape, |
| _ArrayLike, |
| _ArrayLikeBool_co, |
| _ArrayLikeBytes_co, |
| _ArrayLikeComplex128_co, |
| _ArrayLikeComplex_co, |
| _ArrayLikeDT64_co, |
| _ArrayLikeFloat64_co, |
| _ArrayLikeFloat_co, |
| _ArrayLikeInt, |
| _ArrayLikeInt_co, |
| _ArrayLikeNumber_co, |
| _ArrayLikeObject_co, |
| _ArrayLikeStr_co, |
| _ArrayLikeString_co, |
| _ArrayLikeTD64_co, |
| _ArrayLikeUInt_co, |
| _CharLike_co, |
| _DT64Codes, |
| _DTypeLike, |
| _DTypeLikeBool, |
| _DTypeLikeVoid, |
| _FloatLike_co, |
| _IntLike_co, |
| _NestedSequence, |
| _ScalarLike_co, |
| _Shape, |
| _ShapeLike, |
| _SupportsArrayFunc, |
| _SupportsDType, |
| _TD64Like_co, |
| ) |
| from numpy._typing._dtype_like import _VoidDTypeLike |
|
|
| __all__ = [ |
| "MAError", |
| "MaskError", |
| "MaskType", |
| "MaskedArray", |
| "abs", |
| "absolute", |
| "add", |
| "all", |
| "allclose", |
| "allequal", |
| "alltrue", |
| "amax", |
| "amin", |
| "angle", |
| "anom", |
| "anomalies", |
| "any", |
| "append", |
| "arange", |
| "arccos", |
| "arccosh", |
| "arcsin", |
| "arcsinh", |
| "arctan", |
| "arctan2", |
| "arctanh", |
| "argmax", |
| "argmin", |
| "argsort", |
| "around", |
| "array", |
| "asanyarray", |
| "asarray", |
| "bitwise_and", |
| "bitwise_or", |
| "bitwise_xor", |
| "bool_", |
| "ceil", |
| "choose", |
| "clip", |
| "common_fill_value", |
| "compress", |
| "compressed", |
| "concatenate", |
| "conjugate", |
| "convolve", |
| "copy", |
| "correlate", |
| "cos", |
| "cosh", |
| "count", |
| "cumprod", |
| "cumsum", |
| "default_fill_value", |
| "diag", |
| "diagonal", |
| "diff", |
| "divide", |
| "empty", |
| "empty_like", |
| "equal", |
| "exp", |
| "expand_dims", |
| "fabs", |
| "filled", |
| "fix_invalid", |
| "flatten_mask", |
| "flatten_structured_array", |
| "floor", |
| "floor_divide", |
| "fmod", |
| "frombuffer", |
| "fromflex", |
| "fromfunction", |
| "getdata", |
| "getmask", |
| "getmaskarray", |
| "greater", |
| "greater_equal", |
| "harden_mask", |
| "hypot", |
| "identity", |
| "ids", |
| "indices", |
| "inner", |
| "innerproduct", |
| "isMA", |
| "isMaskedArray", |
| "is_mask", |
| "is_masked", |
| "isarray", |
| "left_shift", |
| "less", |
| "less_equal", |
| "log", |
| "log2", |
| "log10", |
| "logical_and", |
| "logical_not", |
| "logical_or", |
| "logical_xor", |
| "make_mask", |
| "make_mask_descr", |
| "make_mask_none", |
| "mask_or", |
| "masked", |
| "masked_array", |
| "masked_equal", |
| "masked_greater", |
| "masked_greater_equal", |
| "masked_inside", |
| "masked_invalid", |
| "masked_less", |
| "masked_less_equal", |
| "masked_not_equal", |
| "masked_object", |
| "masked_outside", |
| "masked_print_option", |
| "masked_singleton", |
| "masked_values", |
| "masked_where", |
| "max", |
| "maximum", |
| "maximum_fill_value", |
| "mean", |
| "min", |
| "minimum", |
| "minimum_fill_value", |
| "mod", |
| "multiply", |
| "mvoid", |
| "ndim", |
| "negative", |
| "nomask", |
| "nonzero", |
| "not_equal", |
| "ones", |
| "ones_like", |
| "outer", |
| "outerproduct", |
| "power", |
| "prod", |
| "product", |
| "ptp", |
| "put", |
| "putmask", |
| "ravel", |
| "remainder", |
| "repeat", |
| "reshape", |
| "resize", |
| "right_shift", |
| "round", |
| "round_", |
| "set_fill_value", |
| "shape", |
| "sin", |
| "sinh", |
| "size", |
| "soften_mask", |
| "sometrue", |
| "sort", |
| "sqrt", |
| "squeeze", |
| "std", |
| "subtract", |
| "sum", |
| "swapaxes", |
| "take", |
| "tan", |
| "tanh", |
| "trace", |
| "transpose", |
| "true_divide", |
| "var", |
| "where", |
| "zeros", |
| "zeros_like", |
| ] |
|
|
| _ShapeT = TypeVar("_ShapeT", bound=_Shape) |
| _ShapeOrAnyT = TypeVar("_ShapeOrAnyT", bound=_Shape, default=_AnyShape) |
| _ShapeT_co = TypeVar("_ShapeT_co", bound=_Shape, default=_AnyShape, covariant=True) |
| _DTypeT = TypeVar("_DTypeT", bound=dtype) |
| _DTypeT_co = TypeVar("_DTypeT_co", bound=dtype, default=dtype, covariant=True) |
| _ArrayT = TypeVar("_ArrayT", bound=ndarray[Any, Any]) |
| _MArrayT = TypeVar("_MArrayT", bound=MaskedArray[Any, Any]) |
| _ScalarT = TypeVar("_ScalarT", bound=generic) |
| _ScalarT_co = TypeVar("_ScalarT_co", bound=generic, covariant=True) |
| _NumberT = TypeVar("_NumberT", bound=number) |
| _RealNumberT = TypeVar("_RealNumberT", bound=floating | integer) |
| _ArangeScalarT = TypeVar("_ArangeScalarT", bound=_ArangeScalar) |
| _UFuncT_co = TypeVar( |
| "_UFuncT_co", |
| # the `| Callable` simplifies self-binding to the ufunc's callable signature |
| bound=np.ufunc | Callable[..., object], |
| default=np.ufunc, |
| covariant=True, |
| ) |
| _Pss = ParamSpec("_Pss") |
| _T = TypeVar("_T") |
|
|
| _Ignored: TypeAlias = object |
|
|
| # A subset of `MaskedArray` that can be parametrized w.r.t. `np.generic` |
| _MaskedArray: TypeAlias = MaskedArray[_AnyShape, dtype[_ScalarT]] |
| _Masked1D: TypeAlias = MaskedArray[tuple[int], dtype[_ScalarT]] |
|
|
| _MaskedArrayUInt_co: TypeAlias = _MaskedArray[unsignedinteger | np.bool] |
| _MaskedArrayInt_co: TypeAlias = _MaskedArray[integer | np.bool] |
| _MaskedArrayFloat64_co: TypeAlias = _MaskedArray[floating[_64Bit] | float32 | float16 | integer | np.bool] |
| _MaskedArrayFloat_co: TypeAlias = _MaskedArray[floating | integer | np.bool] |
| _MaskedArrayComplex128_co: TypeAlias = _MaskedArray[number[_64Bit] | number[_32Bit] | float16 | integer | np.bool] |
| _MaskedArrayComplex_co: TypeAlias = _MaskedArray[inexact | integer | np.bool] |
| _MaskedArrayNumber_co: TypeAlias = _MaskedArray[number | np.bool] |
| _MaskedArrayTD64_co: TypeAlias = _MaskedArray[timedelta64 | integer | np.bool] |
|
|
| _ArrayInt_co: TypeAlias = NDArray[integer | bool_] |
| _Array1D: TypeAlias = np.ndarray[tuple[int], np.dtype[_ScalarT]] |
|
|
| _ConvertibleToInt: TypeAlias = SupportsInt | SupportsIndex | _CharLike_co |
| _ConvertibleToFloat: TypeAlias = SupportsFloat | SupportsIndex | _CharLike_co |
| _ConvertibleToComplex: TypeAlias = SupportsComplex | SupportsFloat | SupportsIndex | _CharLike_co |
| _ConvertibleToTD64: TypeAlias = dt.timedelta | int | _CharLike_co | character | number | timedelta64 | np.bool | None |
| _ConvertibleToDT64: TypeAlias = dt.date | int | _CharLike_co | character | number | datetime64 | np.bool | None |
| _ArangeScalar: TypeAlias = floating | integer | datetime64 | timedelta64 |
|
|
| _NoMaskType: TypeAlias = np.bool_[Literal[False]] # type of `np.False_` |
| _MaskArray: TypeAlias = np.ndarray[_ShapeOrAnyT, np.dtype[np.bool_]] |
|
|
| _FillValue: TypeAlias = complex | None # int | float | complex | None |
| _FillValueCallable: TypeAlias = Callable[[np.dtype | ArrayLike], _FillValue] |
| _DomainCallable: TypeAlias = Callable[..., NDArray[np.bool_]] |
|
|
| ### |
|
|
| MaskType = np.bool_ |
|
|
| nomask: Final[_NoMaskType] = ... |
|
|
| class MaskedArrayFutureWarning(FutureWarning): ... |
| class MAError(Exception): ... |
| class MaskError(MAError): ... |
|
|
| # not generic at runtime |
| class _MaskedUFunc(Generic[_UFuncT_co]): |
| f: _UFuncT_co # readonly |
| def __init__(self, /, ufunc: _UFuncT_co) -> None: ... |
|
|
| # not generic at runtime |
| class _MaskedUnaryOperation(_MaskedUFunc[_UFuncT_co], Generic[_UFuncT_co]): |
| fill: Final[_FillValue] |
| domain: Final[_DomainCallable | None] |
|
|
| def __init__(self, /, mufunc: _UFuncT_co, fill: _FillValue = 0, domain: _DomainCallable | None = None) -> None: ... |
|
|
| # NOTE: This might not work with overloaded callable signatures might not work on |
| # pyright, which is a long-standing issue, and is unique to pyright: |
| # https://github.com/microsoft/pyright/issues/9663 |
| # https://github.com/microsoft/pyright/issues/10849 |
| # https://github.com/microsoft/pyright/issues/10899 |
| # https://github.com/microsoft/pyright/issues/11049 |
| def __call__( |
| self: _MaskedUnaryOperation[Callable[Concatenate[Any, _Pss], _T]], |
| /, |
| a: ArrayLike, |
| *args: _Pss.args, |
| **kwargs: _Pss.kwargs, |
| ) -> _T: ... |
|
|
| # not generic at runtime |
| class _MaskedBinaryOperation(_MaskedUFunc[_UFuncT_co], Generic[_UFuncT_co]): |
| fillx: Final[_FillValue] |
| filly: Final[_FillValue] |
|
|
| def __init__(self, /, mbfunc: _UFuncT_co, fillx: _FillValue = 0, filly: _FillValue = 0) -> None: ... |
|
|
| # NOTE: See the comment in `_MaskedUnaryOperation.__call__` |
| def __call__( |
| self: _MaskedBinaryOperation[Callable[Concatenate[Any, Any, _Pss], _T]], |
| /, |
| a: ArrayLike, |
| b: ArrayLike, |
| *args: _Pss.args, |
| **kwargs: _Pss.kwargs, |
| ) -> _T: ... |
|
|
| # NOTE: We cannot meaningfully annotate the return (d)types of these methods until |
| # the signatures of the corresponding `numpy.ufunc` methods are specified. |
| def reduce(self, /, target: ArrayLike, axis: SupportsIndex = 0, dtype: DTypeLike | None = None) -> Incomplete: ... |
| def outer(self, /, a: ArrayLike, b: ArrayLike) -> _MaskedArray[Incomplete]: ... |
| def accumulate(self, /, target: ArrayLike, axis: SupportsIndex = 0) -> _MaskedArray[Incomplete]: ... |
|
|
| # not generic at runtime |
| class _DomainedBinaryOperation(_MaskedUFunc[_UFuncT_co], Generic[_UFuncT_co]): |
| domain: Final[_DomainCallable] |
| fillx: Final[_FillValue] |
| filly: Final[_FillValue] |
|
|
| def __init__( |
| self, |
| /, |
| dbfunc: _UFuncT_co, |
| domain: _DomainCallable, |
| fillx: _FillValue = 0, |
| filly: _FillValue = 0, |
| ) -> None: ... |
|
|
| # NOTE: See the comment in `_MaskedUnaryOperation.__call__` |
| def __call__( |
| self: _DomainedBinaryOperation[Callable[Concatenate[Any, Any, _Pss], _T]], |
| /, |
| a: ArrayLike, |
| b: ArrayLike, |
| *args: _Pss.args, |
| **kwargs: _Pss.kwargs, |
| ) -> _T: ... |
|
|
| # not generic at runtime |
| class _extrema_operation(_MaskedUFunc[_UFuncT_co], Generic[_UFuncT_co]): |
| compare: Final[_MaskedBinaryOperation] |
| fill_value_func: Final[_FillValueCallable] |
|
|
| def __init__( |
| self, |
| /, |
| ufunc: _UFuncT_co, |
| compare: _MaskedBinaryOperation, |
| fill_value: _FillValueCallable, |
| ) -> None: ... |
|
|
| # NOTE: This class is only used internally for `maximum` and `minimum`, so we are |
| # able to annotate the `__call__` method specifically for those two functions. |
| @overload |
| def __call__(self, /, a: _ArrayLike[_ScalarT], b: _ArrayLike[_ScalarT]) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def __call__(self, /, a: ArrayLike, b: ArrayLike) -> _MaskedArray[Incomplete]: ... |
|
|
| # NOTE: We cannot meaningfully annotate the return (d)types of these methods until |
| # the signatures of the corresponding `numpy.ufunc` methods are specified. |
| def reduce(self, /, target: ArrayLike, axis: SupportsIndex | _NoValueType = ...) -> Incomplete: ... |
| def outer(self, /, a: ArrayLike, b: ArrayLike) -> _MaskedArray[Incomplete]: ... |
|
|
| @final |
| class _MaskedPrintOption: |
| _display: str |
| _enabled: bool | Literal[0, 1] |
| def __init__(self, /, display: str) -> None: ... |
| def display(self, /) -> str: ... |
| def set_display(self, /, s: str) -> None: ... |
| def enabled(self, /) -> bool: ... |
| def enable(self, /, shrink: bool | Literal[0, 1] = 1) -> None: ... |
|
|
| masked_print_option: Final[_MaskedPrintOption] = ... |
|
|
| exp: _MaskedUnaryOperation = ... |
| conjugate: _MaskedUnaryOperation = ... |
| sin: _MaskedUnaryOperation = ... |
| cos: _MaskedUnaryOperation = ... |
| arctan: _MaskedUnaryOperation = ... |
| arcsinh: _MaskedUnaryOperation = ... |
| sinh: _MaskedUnaryOperation = ... |
| cosh: _MaskedUnaryOperation = ... |
| tanh: _MaskedUnaryOperation = ... |
| abs: _MaskedUnaryOperation = ... |
| absolute: _MaskedUnaryOperation = ... |
| angle: _MaskedUnaryOperation = ... |
| fabs: _MaskedUnaryOperation = ... |
| negative: _MaskedUnaryOperation = ... |
| floor: _MaskedUnaryOperation = ... |
| ceil: _MaskedUnaryOperation = ... |
| around: _MaskedUnaryOperation = ... |
| logical_not: _MaskedUnaryOperation = ... |
| sqrt: _MaskedUnaryOperation = ... |
| log: _MaskedUnaryOperation = ... |
| log2: _MaskedUnaryOperation = ... |
| log10: _MaskedUnaryOperation = ... |
| tan: _MaskedUnaryOperation = ... |
| arcsin: _MaskedUnaryOperation = ... |
| arccos: _MaskedUnaryOperation = ... |
| arccosh: _MaskedUnaryOperation = ... |
| arctanh: _MaskedUnaryOperation = ... |
|
|
| add: _MaskedBinaryOperation = ... |
| subtract: _MaskedBinaryOperation = ... |
| multiply: _MaskedBinaryOperation = ... |
| arctan2: _MaskedBinaryOperation = ... |
| equal: _MaskedBinaryOperation = ... |
| not_equal: _MaskedBinaryOperation = ... |
| less_equal: _MaskedBinaryOperation = ... |
| greater_equal: _MaskedBinaryOperation = ... |
| less: _MaskedBinaryOperation = ... |
| greater: _MaskedBinaryOperation = ... |
| logical_and: _MaskedBinaryOperation = ... |
| def alltrue(target: ArrayLike, axis: SupportsIndex | None = 0, dtype: _DTypeLikeBool | None = None) -> Incomplete: ... |
| logical_or: _MaskedBinaryOperation = ... |
| def sometrue(target: ArrayLike, axis: SupportsIndex | None = 0, dtype: _DTypeLikeBool | None = None) -> Incomplete: ... |
| logical_xor: _MaskedBinaryOperation = ... |
| bitwise_and: _MaskedBinaryOperation = ... |
| bitwise_or: _MaskedBinaryOperation = ... |
| bitwise_xor: _MaskedBinaryOperation = ... |
| hypot: _MaskedBinaryOperation = ... |
|
|
| divide: _DomainedBinaryOperation = ... |
| true_divide: _DomainedBinaryOperation = ... |
| floor_divide: _DomainedBinaryOperation = ... |
| remainder: _DomainedBinaryOperation = ... |
| fmod: _DomainedBinaryOperation = ... |
| mod: _DomainedBinaryOperation = ... |
|
|
| # `obj` can be anything (even `object()`), and is too "flexible", so we can't |
| # meaningfully annotate it, or its return type. |
| def default_fill_value(obj: object) -> Any: ... |
| def minimum_fill_value(obj: object) -> Any: ... |
| def maximum_fill_value(obj: object) -> Any: ... |
|
|
| # |
| @overload # returns `a.fill_value` if `a` is a `MaskedArray` |
| def get_fill_value(a: _MaskedArray[_ScalarT]) -> _ScalarT: ... |
| @overload # otherwise returns `default_fill_value(a)` |
| def get_fill_value(a: object) -> Any: ... |
|
|
| # this is a noop if `a` isn't a `MaskedArray`, so we only accept `MaskedArray` input |
| def set_fill_value(a: MaskedArray, fill_value: _ScalarLike_co) -> None: ... |
|
|
| # the return type depends on the *values* of `a` and `b` (which cannot be known |
| # statically), which is why we need to return an awkward `_ | None` |
| @overload |
| def common_fill_value(a: _MaskedArray[_ScalarT], b: MaskedArray) -> _ScalarT | None: ... |
| @overload |
| def common_fill_value(a: object, b: object) -> Any: ... |
|
|
| # keep in sync with `fix_invalid`, but return `ndarray` instead of `MaskedArray` |
| @overload |
| def filled(a: ndarray[_ShapeT, _DTypeT], fill_value: _ScalarLike_co | None = None) -> ndarray[_ShapeT, _DTypeT]: ... |
| @overload |
| def filled(a: _ArrayLike[_ScalarT], fill_value: _ScalarLike_co | None = None) -> NDArray[_ScalarT]: ... |
| @overload |
| def filled(a: ArrayLike, fill_value: _ScalarLike_co | None = None) -> NDArray[Incomplete]: ... |
|
|
| # keep in sync with `filled`, but return `MaskedArray` instead of `ndarray` |
| @overload |
| def fix_invalid( |
| a: np.ndarray[_ShapeT, _DTypeT], |
| mask: _ArrayLikeBool_co = nomask, |
| copy: bool = True, |
| fill_value: _ScalarLike_co | None = None, |
| ) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload |
| def fix_invalid( |
| a: _ArrayLike[_ScalarT], |
| mask: _ArrayLikeBool_co = nomask, |
| copy: bool = True, |
| fill_value: _ScalarLike_co | None = None, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def fix_invalid( |
| a: ArrayLike, |
| mask: _ArrayLikeBool_co = nomask, |
| copy: bool = True, |
| fill_value: _ScalarLike_co | None = None, |
| ) -> _MaskedArray[Incomplete]: ... |
|
|
| # |
| def get_masked_subclass(*arrays: object) -> type[MaskedArray]: ... |
|
|
| # |
| @overload |
| def getdata(a: np.ndarray[_ShapeT, _DTypeT], subok: bool = True) -> np.ndarray[_ShapeT, _DTypeT]: ... |
| @overload |
| def getdata(a: _ArrayLike[_ScalarT], subok: bool = True) -> NDArray[_ScalarT]: ... |
| @overload |
| def getdata(a: ArrayLike, subok: bool = True) -> NDArray[Incomplete]: ... |
|
|
| get_data = getdata |
|
|
| # |
| @overload |
| def getmask(a: _ScalarLike_co) -> _NoMaskType: ... |
| @overload |
| def getmask(a: MaskedArray[_ShapeT, Any]) -> _MaskArray[_ShapeT] | _NoMaskType: ... |
| @overload |
| def getmask(a: ArrayLike) -> _MaskArray | _NoMaskType: ... |
|
|
| get_mask = getmask |
|
|
| # like `getmask`, but instead of `nomask` returns `make_mask_none(arr, arr.dtype?)` |
| @overload |
| def getmaskarray(arr: _ScalarLike_co) -> _MaskArray[tuple[()]]: ... |
| @overload |
| def getmaskarray(arr: np.ndarray[_ShapeT, Any]) -> _MaskArray[_ShapeT]: ... |
|
|
| # It's sufficient for `m` to have dtype with type: `type[np.bool_]`, |
| # which isn't necessarily a ndarray. Please open an issue if this causes issues. |
| def is_mask(m: object) -> TypeIs[NDArray[bool_]]: ... |
|
|
| # |
| @overload |
| def make_mask_descr(ndtype: _VoidDTypeLike) -> np.dtype[np.void]: ... |
| @overload |
| def make_mask_descr(ndtype: _DTypeLike[np.generic] | str | type) -> np.dtype[np.bool_]: ... |
|
|
| # |
| @overload # m is nomask |
| def make_mask( |
| m: _NoMaskType, |
| copy: bool = False, |
| shrink: bool = True, |
| dtype: _DTypeLikeBool = ..., |
| ) -> _NoMaskType: ... |
| @overload # m: ndarray, shrink=True (default), dtype: bool-like (default) |
| def make_mask( |
| m: np.ndarray[_ShapeT], |
| copy: bool = False, |
| shrink: Literal[True] = True, |
| dtype: _DTypeLikeBool = ..., |
| ) -> _MaskArray[_ShapeT] | _NoMaskType: ... |
| @overload # m: ndarray, shrink=False (kwarg), dtype: bool-like (default) |
| def make_mask( |
| m: np.ndarray[_ShapeT], |
| copy: bool = False, |
| *, |
| shrink: Literal[False], |
| dtype: _DTypeLikeBool = ..., |
| ) -> _MaskArray[_ShapeT]: ... |
| @overload # m: ndarray, dtype: void-like |
| def make_mask( |
| m: np.ndarray[_ShapeT], |
| copy: bool = False, |
| shrink: bool = True, |
| *, |
| dtype: _DTypeLikeVoid, |
| ) -> np.ndarray[_ShapeT, np.dtype[np.void]]: ... |
| @overload # m: array-like, shrink=True (default), dtype: bool-like (default) |
| def make_mask( |
| m: ArrayLike, |
| copy: bool = False, |
| shrink: Literal[True] = True, |
| dtype: _DTypeLikeBool = ..., |
| ) -> _MaskArray | _NoMaskType: ... |
| @overload # m: array-like, shrink=False (kwarg), dtype: bool-like (default) |
| def make_mask( |
| m: ArrayLike, |
| copy: bool = False, |
| *, |
| shrink: Literal[False], |
| dtype: _DTypeLikeBool = ..., |
| ) -> _MaskArray: ... |
| @overload # m: array-like, dtype: void-like |
| def make_mask( |
| m: ArrayLike, |
| copy: bool = False, |
| shrink: bool = True, |
| *, |
| dtype: _DTypeLikeVoid, |
| ) -> NDArray[np.void]: ... |
| @overload # fallback |
| def make_mask( |
| m: ArrayLike, |
| copy: bool = False, |
| shrink: bool = True, |
| *, |
| dtype: DTypeLike = ..., |
| ) -> NDArray[Incomplete] | _NoMaskType: ... |
|
|
| # |
| @overload # known shape, dtype: unstructured (default) |
| def make_mask_none(newshape: _ShapeT, dtype: np.dtype | type | str | None = None) -> _MaskArray[_ShapeT]: ... |
| @overload # known shape, dtype: structured |
| def make_mask_none(newshape: _ShapeT, dtype: _VoidDTypeLike) -> np.ndarray[_ShapeT, dtype[np.void]]: ... |
| @overload # unknown shape, dtype: unstructured (default) |
| def make_mask_none(newshape: _ShapeLike, dtype: np.dtype | type | str | None = None) -> _MaskArray: ... |
| @overload # unknown shape, dtype: structured |
| def make_mask_none(newshape: _ShapeLike, dtype: _VoidDTypeLike) -> NDArray[np.void]: ... |
|
|
| # |
| @overload # nomask, scalar-like, shrink=True (default) |
| def mask_or( |
| m1: _NoMaskType | Literal[False], |
| m2: _ScalarLike_co, |
| copy: bool = False, |
| shrink: Literal[True] = True, |
| ) -> _NoMaskType: ... |
| @overload # nomask, scalar-like, shrink=False (kwarg) |
| def mask_or( |
| m1: _NoMaskType | Literal[False], |
| m2: _ScalarLike_co, |
| copy: bool = False, |
| *, |
| shrink: Literal[False], |
| ) -> _MaskArray[tuple[()]]: ... |
| @overload # scalar-like, nomask, shrink=True (default) |
| def mask_or( |
| m1: _ScalarLike_co, |
| m2: _NoMaskType | Literal[False], |
| copy: bool = False, |
| shrink: Literal[True] = True, |
| ) -> _NoMaskType: ... |
| @overload # scalar-like, nomask, shrink=False (kwarg) |
| def mask_or( |
| m1: _ScalarLike_co, |
| m2: _NoMaskType | Literal[False], |
| copy: bool = False, |
| *, |
| shrink: Literal[False], |
| ) -> _MaskArray[tuple[()]]: ... |
| @overload # ndarray, ndarray | nomask, shrink=True (default) |
| def mask_or( |
| m1: np.ndarray[_ShapeT, np.dtype[_ScalarT]], |
| m2: np.ndarray[_ShapeT, np.dtype[_ScalarT]] | _NoMaskType | Literal[False], |
| copy: bool = False, |
| shrink: Literal[True] = True, |
| ) -> _MaskArray[_ShapeT] | _NoMaskType: ... |
| @overload # ndarray, ndarray | nomask, shrink=False (kwarg) |
| def mask_or( |
| m1: np.ndarray[_ShapeT, np.dtype[_ScalarT]], |
| m2: np.ndarray[_ShapeT, np.dtype[_ScalarT]] | _NoMaskType | Literal[False], |
| copy: bool = False, |
| *, |
| shrink: Literal[False], |
| ) -> _MaskArray[_ShapeT]: ... |
| @overload # ndarray | nomask, ndarray, shrink=True (default) |
| def mask_or( |
| m1: np.ndarray[_ShapeT, np.dtype[_ScalarT]] | _NoMaskType | Literal[False], |
| m2: np.ndarray[_ShapeT, np.dtype[_ScalarT]], |
| copy: bool = False, |
| shrink: Literal[True] = True, |
| ) -> _MaskArray[_ShapeT] | _NoMaskType: ... |
| @overload # ndarray | nomask, ndarray, shrink=False (kwarg) |
| def mask_or( |
| m1: np.ndarray[_ShapeT, np.dtype[_ScalarT]] | _NoMaskType | Literal[False], |
| m2: np.ndarray[_ShapeT, np.dtype[_ScalarT]], |
| copy: bool = False, |
| *, |
| shrink: Literal[False], |
| ) -> _MaskArray[_ShapeT]: ... |
|
|
| # |
| @overload |
| def flatten_mask(mask: np.ndarray[_ShapeT]) -> _MaskArray[_ShapeT]: ... |
| @overload |
| def flatten_mask(mask: ArrayLike) -> _MaskArray: ... |
|
|
| # NOTE: we currently don't know the field types of `void` dtypes, so it's not possible |
| # to know the output dtype of the returned array. |
| @overload |
| def flatten_structured_array(a: MaskedArray[_ShapeT, np.dtype[np.void]]) -> MaskedArray[_ShapeT]: ... |
| @overload |
| def flatten_structured_array(a: np.ndarray[_ShapeT, np.dtype[np.void]]) -> np.ndarray[_ShapeT]: ... |
| @overload # for some reason this accepts unstructured array-likes, hence this fallback overload |
| def flatten_structured_array(a: ArrayLike) -> np.ndarray: ... |
|
|
| # keep in sync with other the `masked_*` functions |
| @overload # known array with known shape and dtype |
| def masked_invalid(a: ndarray[_ShapeT, _DTypeT], copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload # array-like of known scalar-type |
| def masked_invalid(a: _ArrayLike[_ScalarT], copy: bool = True) -> _MaskedArray[_ScalarT]: ... |
| @overload # unknown array-like |
| def masked_invalid(a: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ... |
|
|
| # keep in sync with other the `masked_*` functions |
| @overload # array-like of known scalar-type |
| def masked_where( |
| condition: _ArrayLikeBool_co, a: ndarray[_ShapeT, _DTypeT], copy: bool = True |
| ) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload # array-like of known scalar-type |
| def masked_where(condition: _ArrayLikeBool_co, a: _ArrayLike[_ScalarT], copy: bool = True) -> _MaskedArray[_ScalarT]: ... |
| @overload # unknown array-like |
| def masked_where(condition: _ArrayLikeBool_co, a: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ... |
|
|
| # keep in sync with other the `masked_*` functions |
| @overload # known array with known shape and dtype |
| def masked_greater(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload # array-like of known scalar-type |
| def masked_greater(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ... |
| @overload # unknown array-like |
| def masked_greater(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ... |
|
|
| # keep in sync with other the `masked_*` functions |
| @overload # known array with known shape and dtype |
| def masked_greater_equal(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload # array-like of known scalar-type |
| def masked_greater_equal(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ... |
| @overload # unknown array-like |
| def masked_greater_equal(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ... |
|
|
| # keep in sync with other the `masked_*` functions |
| @overload # known array with known shape and dtype |
| def masked_less(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload # array-like of known scalar-type |
| def masked_less(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ... |
| @overload # unknown array-like |
| def masked_less(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ... |
|
|
| # keep in sync with other the `masked_*` functions |
| @overload # known array with known shape and dtype |
| def masked_less_equal(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload # array-like of known scalar-type |
| def masked_less_equal(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ... |
| @overload # unknown array-like |
| def masked_less_equal(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ... |
|
|
| # keep in sync with other the `masked_*` functions |
| @overload # known array with known shape and dtype |
| def masked_not_equal(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload # array-like of known scalar-type |
| def masked_not_equal(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ... |
| @overload # unknown array-like |
| def masked_not_equal(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ... |
|
|
| # keep in sync with other the `masked_*` functions |
| @overload # known array with known shape and dtype |
| def masked_equal(x: ndarray[_ShapeT, _DTypeT], value: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload # array-like of known scalar-type |
| def masked_equal(x: _ArrayLike[_ScalarT], value: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ... |
| @overload # unknown array-like |
| def masked_equal(x: ArrayLike, value: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ... |
|
|
| # keep in sync with other the `masked_*` functions |
| @overload # known array with known shape and dtype |
| def masked_inside(x: ndarray[_ShapeT, _DTypeT], v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload # array-like of known scalar-type |
| def masked_inside(x: _ArrayLike[_ScalarT], v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ... |
| @overload # unknown array-like |
| def masked_inside(x: ArrayLike, v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ... |
|
|
| # keep in sync with other the `masked_*` functions |
| @overload # known array with known shape and dtype |
| def masked_outside(x: ndarray[_ShapeT, _DTypeT], v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload # array-like of known scalar-type |
| def masked_outside(x: _ArrayLike[_ScalarT], v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> _MaskedArray[_ScalarT]: ... |
| @overload # unknown array-like |
| def masked_outside(x: ArrayLike, v1: ArrayLike, v2: ArrayLike, copy: bool = True) -> _MaskedArray[Incomplete]: ... |
|
|
| # only intended for object arrays, so we assume that's how it's always used in practice |
| @overload |
| def masked_object( |
| x: np.ndarray[_ShapeT, np.dtype[np.object_]], |
| value: object, |
| copy: bool = True, |
| shrink: bool = True, |
| ) -> MaskedArray[_ShapeT, np.dtype[np.object_]]: ... |
| @overload |
| def masked_object( |
| x: _ArrayLikeObject_co, |
| value: object, |
| copy: bool = True, |
| shrink: bool = True, |
| ) -> _MaskedArray[np.object_]: ... |
|
|
| # keep roughly in sync with `filled` |
| @overload |
| def masked_values( |
| x: np.ndarray[_ShapeT, _DTypeT], |
| value: _ScalarLike_co, |
| rtol: float = 1e-5, |
| atol: float = 1e-8, |
| copy: bool = True, |
| shrink: bool = True |
| ) -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload |
| def masked_values( |
| x: _ArrayLike[_ScalarT], |
| value: _ScalarLike_co, |
| rtol: float = 1e-5, |
| atol: float = 1e-8, |
| copy: bool = True, |
| shrink: bool = True |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def masked_values( |
| x: ArrayLike, |
| value: _ScalarLike_co, |
| rtol: float = 1e-5, |
| atol: float = 1e-8, |
| copy: bool = True, |
| shrink: bool = True |
| ) -> _MaskedArray[Incomplete]: ... |
|
|
| # TODO: Support non-boolean mask dtypes, such as `np.void`. This will require adding an |
| # additional generic type parameter to (at least) `MaskedArray` and `MaskedIterator` to |
| # hold the dtype of the mask. |
|
|
| class MaskedIterator(Generic[_ShapeT_co, _DTypeT_co]): |
| ma: MaskedArray[_ShapeT_co, _DTypeT_co] # readonly |
| dataiter: np.flatiter[ndarray[_ShapeT_co, _DTypeT_co]] # readonly |
| maskiter: Final[np.flatiter[NDArray[np.bool]]] |
|
|
| def __init__(self, ma: MaskedArray[_ShapeT_co, _DTypeT_co]) -> None: ... |
| def __iter__(self) -> Self: ... |
|
|
| # Similar to `MaskedArray.__getitem__` but without the `void` case. |
| @overload |
| def __getitem__(self, indx: _ArrayInt_co | tuple[_ArrayInt_co, ...], /) -> MaskedArray[_AnyShape, _DTypeT_co]: ... |
| @overload |
| def __getitem__(self, indx: SupportsIndex | tuple[SupportsIndex, ...], /) -> Incomplete: ... |
| @overload |
| def __getitem__(self, indx: _ToIndices, /) -> MaskedArray[_AnyShape, _DTypeT_co]: ... |
|
|
| # Similar to `ndarray.__setitem__` but without the `void` case. |
| @overload # flexible | object_ | bool |
| def __setitem__( |
| self: MaskedIterator[Any, dtype[flexible | object_ | np.bool] | dtypes.StringDType], |
| index: _ToIndices, |
| value: object, |
| /, |
| ) -> None: ... |
| @overload # integer |
| def __setitem__( |
| self: MaskedIterator[Any, dtype[integer]], |
| index: _ToIndices, |
| value: _ConvertibleToInt | _NestedSequence[_ConvertibleToInt] | _ArrayLikeInt_co, |
| /, |
| ) -> None: ... |
| @overload # floating |
| def __setitem__( |
| self: MaskedIterator[Any, dtype[floating]], |
| index: _ToIndices, |
| value: _ConvertibleToFloat | _NestedSequence[_ConvertibleToFloat | None] | _ArrayLikeFloat_co | None, |
| /, |
| ) -> None: ... |
| @overload # complexfloating |
| def __setitem__( |
| self: MaskedIterator[Any, dtype[complexfloating]], |
| index: _ToIndices, |
| value: _ConvertibleToComplex | _NestedSequence[_ConvertibleToComplex | None] | _ArrayLikeNumber_co | None, |
| /, |
| ) -> None: ... |
| @overload # timedelta64 |
| def __setitem__( |
| self: MaskedIterator[Any, dtype[timedelta64]], |
| index: _ToIndices, |
| value: _ConvertibleToTD64 | _NestedSequence[_ConvertibleToTD64], |
| /, |
| ) -> None: ... |
| @overload # datetime64 |
| def __setitem__( |
| self: MaskedIterator[Any, dtype[datetime64]], |
| index: _ToIndices, |
| value: _ConvertibleToDT64 | _NestedSequence[_ConvertibleToDT64], |
| /, |
| ) -> None: ... |
| @overload # catch-all |
| def __setitem__(self, index: _ToIndices, value: ArrayLike, /) -> None: ... |
|
|
| # TODO: Returns `mvoid[(), _DTypeT_co]` for masks with `np.void` dtype. |
| def __next__(self: MaskedIterator[Any, np.dtype[_ScalarT]]) -> _ScalarT: ... |
|
|
| class MaskedArray(ndarray[_ShapeT_co, _DTypeT_co]): |
| __array_priority__: Final[Literal[15]] = 15 |
|
|
| @overload |
| def __new__( |
| cls, |
| data: _ArrayLike[_ScalarT], |
| mask: _ArrayLikeBool_co = nomask, |
| dtype: None = None, |
| copy: bool = False, |
| subok: bool = True, |
| ndmin: int = 0, |
| fill_value: _ScalarLike_co | None = None, |
| keep_mask: bool = True, |
| hard_mask: bool | None = None, |
| shrink: bool = True, |
| order: _OrderKACF | None = None, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def __new__( |
| cls, |
| data: object, |
| mask: _ArrayLikeBool_co, |
| dtype: _DTypeLike[_ScalarT], |
| copy: bool = False, |
| subok: bool = True, |
| ndmin: int = 0, |
| fill_value: _ScalarLike_co | None = None, |
| keep_mask: bool = True, |
| hard_mask: bool | None = None, |
| shrink: bool = True, |
| order: _OrderKACF | None = None, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def __new__( |
| cls, |
| data: object, |
| mask: _ArrayLikeBool_co = nomask, |
| *, |
| dtype: _DTypeLike[_ScalarT], |
| copy: bool = False, |
| subok: bool = True, |
| ndmin: int = 0, |
| fill_value: _ScalarLike_co | None = None, |
| keep_mask: bool = True, |
| hard_mask: bool | None = None, |
| shrink: bool = True, |
| order: _OrderKACF | None = None, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def __new__( |
| cls, |
| data: object = None, |
| mask: _ArrayLikeBool_co = nomask, |
| dtype: DTypeLike | None = None, |
| copy: bool = False, |
| subok: bool = True, |
| ndmin: int = 0, |
| fill_value: _ScalarLike_co | None = None, |
| keep_mask: bool = True, |
| hard_mask: bool | None = None, |
| shrink: bool = True, |
| order: _OrderKACF | None = None, |
| ) -> _MaskedArray[Any]: ... |
|
|
| def __array_wrap__( |
| self, |
| obj: ndarray[_ShapeT, _DTypeT], |
| context: tuple[ufunc, tuple[Any, ...], int] | None = None, |
| return_scalar: bool = False, |
| ) -> MaskedArray[_ShapeT, _DTypeT]: ... |
|
|
| @overload # type: ignore[override] # () |
| def view(self, /, dtype: None = None, type: None = None, fill_value: _ScalarLike_co | None = None) -> Self: ... |
| @overload # (dtype: DTypeT) |
| def view( |
| self, |
| /, |
| dtype: _DTypeT | _HasDType[_DTypeT], |
| type: None = None, |
| fill_value: _ScalarLike_co | None = None |
| ) -> MaskedArray[_ShapeT_co, _DTypeT]: ... |
| @overload # (dtype: dtype[ScalarT]) |
| def view( |
| self, |
| /, |
| dtype: _DTypeLike[_ScalarT], |
| type: None = None, |
| fill_value: _ScalarLike_co | None = None |
| ) -> MaskedArray[_ShapeT_co, dtype[_ScalarT]]: ... |
| @overload # ([dtype: _, ]*, type: ArrayT) |
| def view( |
| self, |
| /, |
| dtype: DTypeLike | None = None, |
| *, |
| type: type[_ArrayT], |
| fill_value: _ScalarLike_co | None = None |
| ) -> _ArrayT: ... |
| @overload # (dtype: _, type: ArrayT) |
| def view(self, /, dtype: DTypeLike | None, type: type[_ArrayT], fill_value: _ScalarLike_co | None = None) -> _ArrayT: ... |
| @overload # (dtype: ArrayT, /) |
| def view(self, /, dtype: type[_ArrayT], type: None = None, fill_value: _ScalarLike_co | None = None) -> _ArrayT: ... |
| @overload # (dtype: ?) |
| def view( |
| self, |
| /, |
| # `_VoidDTypeLike | str | None` is like `DTypeLike` but without `_DTypeLike[Any]` to avoid |
| # overlaps with previous overloads. |
| dtype: _VoidDTypeLike | str | None, |
| type: None = None, |
| fill_value: _ScalarLike_co | None = None |
| ) -> MaskedArray[_ShapeT_co, dtype]: ... |
|
|
| # Keep in sync with `ndarray.__getitem__` |
| @overload |
| def __getitem__(self, key: _ArrayInt_co | tuple[_ArrayInt_co, ...], /) -> MaskedArray[_AnyShape, _DTypeT_co]: ... |
| @overload |
| def __getitem__(self, key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any: ... |
| @overload |
| def __getitem__(self, key: _ToIndices, /) -> MaskedArray[_AnyShape, _DTypeT_co]: ... |
| @overload |
| def __getitem__(self: _MaskedArray[void], indx: str, /) -> MaskedArray[_ShapeT_co, dtype]: ... |
| @overload |
| def __getitem__(self: _MaskedArray[void], indx: list[str], /) -> MaskedArray[_ShapeT_co, dtype[void]]: ... |
|
|
| @property |
| def shape(self) -> _ShapeT_co: ... |
| @shape.setter # type: ignore[override] |
| def shape(self: MaskedArray[_ShapeT, Any], shape: _ShapeT, /) -> None: ... |
|
|
| def __setmask__(self, mask: _ArrayLikeBool_co, copy: bool = False) -> None: ... |
| @property |
| def mask(self) -> np.ndarray[_ShapeT_co, dtype[MaskType]] | MaskType: ... |
| @mask.setter |
| def mask(self, value: _ArrayLikeBool_co, /) -> None: ... |
| @property |
| def recordmask(self) -> np.ndarray[_ShapeT_co, dtype[MaskType]] | MaskType: ... |
| @recordmask.setter |
| def recordmask(self, mask: Never, /) -> NoReturn: ... |
| def harden_mask(self) -> Self: ... |
| def soften_mask(self) -> Self: ... |
| @property |
| def hardmask(self) -> bool: ... |
| def unshare_mask(self) -> Self: ... |
| @property |
| def sharedmask(self) -> bool: ... |
| def shrink_mask(self) -> Self: ... |
|
|
| @property |
| def baseclass(self) -> type[ndarray]: ... |
|
|
| @property |
| def _data(self) -> ndarray[_ShapeT_co, _DTypeT_co]: ... |
| @property |
| def data(self) -> ndarray[_ShapeT_co, _DTypeT_co]: ... # type: ignore[override] |
|
|
| @property # type: ignore[override] |
| def flat(self) -> MaskedIterator[_ShapeT_co, _DTypeT_co]: ... |
| @flat.setter |
| def flat(self, value: ArrayLike, /) -> None: ... |
|
|
| @property |
| def fill_value(self: _MaskedArray[_ScalarT]) -> _ScalarT: ... |
| @fill_value.setter |
| def fill_value(self, value: _ScalarLike_co | None = None, /) -> None: ... |
|
|
| def get_fill_value(self: _MaskedArray[_ScalarT]) -> _ScalarT: ... |
| def set_fill_value(self, /, value: _ScalarLike_co | None = None) -> None: ... |
|
|
| def filled(self, /, fill_value: _ScalarLike_co | None = None) -> ndarray[_ShapeT_co, _DTypeT_co]: ... |
| def compressed(self) -> ndarray[tuple[int], _DTypeT_co]: ... |
|
|
| # keep roughly in sync with `ma.core.compress`, but swap the first two arguments |
| @overload # type: ignore[override] |
| def compress( |
| self, |
| condition: _ArrayLikeBool_co, |
| axis: _ShapeLike | None, |
| out: _ArrayT |
| ) -> _ArrayT: ... |
| @overload |
| def compress( |
| self, |
| condition: _ArrayLikeBool_co, |
| axis: _ShapeLike | None = None, |
| *, |
| out: _ArrayT |
| ) -> _ArrayT: ... |
| @overload |
| def compress( |
| self, |
| condition: _ArrayLikeBool_co, |
| axis: None = None, |
| out: None = None |
| ) -> MaskedArray[tuple[int], _DTypeT_co]: ... |
| @overload |
| def compress( |
| self, |
| condition: _ArrayLikeBool_co, |
| axis: _ShapeLike | None = None, |
| out: None = None |
| ) -> MaskedArray[_AnyShape, _DTypeT_co]: ... |
|
|
| # TODO: How to deal with the non-commutative nature of `==` and `!=`? |
| # xref numpy/numpy#17368 |
| def __eq__(self, other: Incomplete, /) -> Incomplete: ... |
| def __ne__(self, other: Incomplete, /) -> Incomplete: ... |
|
|
| def __ge__(self, other: ArrayLike, /) -> _MaskedArray[bool_]: ... # type: ignore[override] |
| def __gt__(self, other: ArrayLike, /) -> _MaskedArray[bool_]: ... # type: ignore[override] |
| def __le__(self, other: ArrayLike, /) -> _MaskedArray[bool_]: ... # type: ignore[override] |
| def __lt__(self, other: ArrayLike, /) -> _MaskedArray[bool_]: ... # type: ignore[override] |
|
|
| # Keep in sync with `ndarray.__add__` |
| @overload # type: ignore[override] |
| def __add__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ... |
| @overload |
| def __add__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __add__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[np.bool]: ... # type: ignore[overload-overlap] |
| @overload |
| def __add__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __add__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __add__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __add__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __add__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __add__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __add__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __add__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __add__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __add__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... # type: ignore[overload-overlap] |
| @overload |
| def __add__(self: _MaskedArrayTD64_co, other: _ArrayLikeTD64_co, /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __add__(self: _MaskedArrayTD64_co, other: _ArrayLikeDT64_co, /) -> _MaskedArray[datetime64]: ... |
| @overload |
| def __add__(self: _MaskedArray[datetime64], other: _ArrayLikeTD64_co, /) -> _MaskedArray[datetime64]: ... |
| @overload |
| def __add__(self: _MaskedArray[bytes_], other: _ArrayLikeBytes_co, /) -> _MaskedArray[bytes_]: ... |
| @overload |
| def __add__(self: _MaskedArray[str_], other: _ArrayLikeStr_co, /) -> _MaskedArray[str_]: ... |
| @overload |
| def __add__( |
| self: MaskedArray[Any, dtypes.StringDType], |
| other: _ArrayLikeStr_co | _ArrayLikeString_co, |
| /, |
| ) -> MaskedArray[_AnyShape, dtypes.StringDType]: ... |
| @overload |
| def __add__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __add__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # Keep in sync with `ndarray.__radd__` |
| @overload # type: ignore[override] # signature equivalent to __add__ |
| def __radd__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ... |
| @overload |
| def __radd__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __radd__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[np.bool]: ... # type: ignore[overload-overlap] |
| @overload |
| def __radd__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __radd__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __radd__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __radd__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __radd__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __radd__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __radd__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __radd__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __radd__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __radd__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... # type: ignore[overload-overlap] |
| @overload |
| def __radd__(self: _MaskedArrayTD64_co, other: _ArrayLikeTD64_co, /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __radd__(self: _MaskedArrayTD64_co, other: _ArrayLikeDT64_co, /) -> _MaskedArray[datetime64]: ... |
| @overload |
| def __radd__(self: _MaskedArray[datetime64], other: _ArrayLikeTD64_co, /) -> _MaskedArray[datetime64]: ... |
| @overload |
| def __radd__(self: _MaskedArray[bytes_], other: _ArrayLikeBytes_co, /) -> _MaskedArray[bytes_]: ... |
| @overload |
| def __radd__(self: _MaskedArray[str_], other: _ArrayLikeStr_co, /) -> _MaskedArray[str_]: ... |
| @overload |
| def __radd__( |
| self: MaskedArray[Any, dtypes.StringDType], |
| other: _ArrayLikeStr_co | _ArrayLikeString_co, |
| /, |
| ) -> MaskedArray[_AnyShape, dtypes.StringDType]: ... |
| @overload |
| def __radd__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __radd__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # Keep in sync with `ndarray.__sub__` |
| @overload # type: ignore[override] |
| def __sub__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ... |
| @overload |
| def __sub__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __sub__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> NoReturn: ... |
| @overload |
| def __sub__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __sub__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __sub__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __sub__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __sub__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __sub__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __sub__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __sub__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __sub__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __sub__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... # type: ignore[overload-overlap] |
| @overload |
| def __sub__(self: _MaskedArrayTD64_co, other: _ArrayLikeTD64_co, /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __sub__(self: _MaskedArray[datetime64], other: _ArrayLikeTD64_co, /) -> _MaskedArray[datetime64]: ... |
| @overload |
| def __sub__(self: _MaskedArray[datetime64], other: _ArrayLikeDT64_co, /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __sub__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __sub__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # Keep in sync with `ndarray.__rsub__` |
| @overload # type: ignore[override] |
| def __rsub__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ... |
| @overload |
| def __rsub__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rsub__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> NoReturn: ... |
| @overload |
| def __rsub__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rsub__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __rsub__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __rsub__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __rsub__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __rsub__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rsub__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rsub__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rsub__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rsub__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rsub__(self: _MaskedArrayTD64_co, other: _ArrayLikeTD64_co, /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __rsub__(self: _MaskedArrayTD64_co, other: _ArrayLikeDT64_co, /) -> _MaskedArray[datetime64]: ... |
| @overload |
| def __rsub__(self: _MaskedArray[datetime64], other: _ArrayLikeDT64_co, /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __rsub__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __rsub__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # Keep in sync with `ndarray.__mul__` |
| @overload # type: ignore[override] |
| def __mul__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ... |
| @overload |
| def __mul__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __mul__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[np.bool]: ... # type: ignore[overload-overlap] |
| @overload |
| def __mul__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __mul__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __mul__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __mul__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __mul__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __mul__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __mul__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __mul__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __mul__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __mul__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... |
| @overload |
| def __mul__(self: _MaskedArray[timedelta64], other: _ArrayLikeFloat_co, /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __mul__(self: _MaskedArrayFloat_co, other: _ArrayLike[timedelta64], /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __mul__( |
| self: MaskedArray[Any, dtype[character] | dtypes.StringDType], |
| other: _ArrayLikeInt, |
| /, |
| ) -> MaskedArray[tuple[Any, ...], _DTypeT_co]: ... |
| @overload |
| def __mul__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __mul__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # Keep in sync with `ndarray.__rmul__` |
| @overload # type: ignore[override] # signature equivalent to __mul__ |
| def __rmul__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ... |
| @overload |
| def __rmul__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rmul__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[np.bool]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rmul__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rmul__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __rmul__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __rmul__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __rmul__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __rmul__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rmul__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rmul__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rmul__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rmul__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... |
| @overload |
| def __rmul__(self: _MaskedArray[timedelta64], other: _ArrayLikeFloat_co, /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __rmul__(self: _MaskedArrayFloat_co, other: _ArrayLike[timedelta64], /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __rmul__( |
| self: MaskedArray[Any, dtype[character] | dtypes.StringDType], |
| other: _ArrayLikeInt, |
| /, |
| ) -> MaskedArray[tuple[Any, ...], _DTypeT_co]: ... |
| @overload |
| def __rmul__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __rmul__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # Keep in sync with `ndarray.__truediv__` |
| @overload # type: ignore[override] |
| def __truediv__(self: _MaskedArrayInt_co | _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __truediv__(self: _MaskedArrayFloat64_co, other: _ArrayLikeInt_co | _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __truediv__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __truediv__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __truediv__(self: _MaskedArray[floating], other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... |
| @overload |
| def __truediv__(self: _MaskedArrayFloat_co, other: _ArrayLike[floating], /) -> _MaskedArray[floating]: ... |
| @overload |
| def __truediv__(self: _MaskedArray[complexfloating], other: _ArrayLikeNumber_co, /) -> _MaskedArray[complexfloating]: ... |
| @overload |
| def __truediv__(self: _MaskedArrayNumber_co, other: _ArrayLike[complexfloating], /) -> _MaskedArray[complexfloating]: ... |
| @overload |
| def __truediv__(self: _MaskedArray[inexact], other: _ArrayLikeNumber_co, /) -> _MaskedArray[inexact]: ... |
| @overload |
| def __truediv__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... |
| @overload |
| def __truediv__(self: _MaskedArray[timedelta64], other: _ArrayLike[timedelta64], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __truediv__(self: _MaskedArray[timedelta64], other: _ArrayLikeBool_co, /) -> NoReturn: ... |
| @overload |
| def __truediv__(self: _MaskedArray[timedelta64], other: _ArrayLikeFloat_co, /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __truediv__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __truediv__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # Keep in sync with `ndarray.__rtruediv__` |
| @overload # type: ignore[override] |
| def __rtruediv__(self: _MaskedArrayInt_co | _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArrayFloat64_co, other: _ArrayLikeInt_co | _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArray[floating], other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArrayFloat_co, other: _ArrayLike[floating], /) -> _MaskedArray[floating]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArray[complexfloating], other: _ArrayLikeNumber_co, /) -> _MaskedArray[complexfloating]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArrayNumber_co, other: _ArrayLike[complexfloating], /) -> _MaskedArray[complexfloating]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArray[inexact], other: _ArrayLikeNumber_co, /) -> _MaskedArray[inexact]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArray[timedelta64], other: _ArrayLike[timedelta64], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArray[integer | floating], other: _ArrayLike[timedelta64], /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __rtruediv__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __rtruediv__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # Keep in sync with `ndarray.__floordiv__` |
| @overload # type: ignore[override] |
| def __floordiv__(self: _MaskedArray[_RealNumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_RealNumberT]]: ... |
| @overload |
| def __floordiv__(self: _MaskedArray[_RealNumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_RealNumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __floordiv__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[int8]: ... # type: ignore[overload-overlap] |
| @overload |
| def __floordiv__(self: _MaskedArray[np.bool], other: _ArrayLike[_RealNumberT], /) -> _MaskedArray[_RealNumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __floordiv__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __floordiv__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __floordiv__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __floordiv__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __floordiv__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... |
| @overload |
| def __floordiv__(self: _MaskedArray[timedelta64], other: _ArrayLike[timedelta64], /) -> _MaskedArray[int64]: ... |
| @overload |
| def __floordiv__(self: _MaskedArray[timedelta64], other: _ArrayLikeBool_co, /) -> NoReturn: ... |
| @overload |
| def __floordiv__(self: _MaskedArray[timedelta64], other: _ArrayLikeFloat_co, /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __floordiv__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __floordiv__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # Keep in sync with `ndarray.__rfloordiv__` |
| @overload # type: ignore[override] |
| def __rfloordiv__(self: _MaskedArray[_RealNumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_RealNumberT]]: ... |
| @overload |
| def __rfloordiv__(self: _MaskedArray[_RealNumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_RealNumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rfloordiv__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[int8]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rfloordiv__(self: _MaskedArray[np.bool], other: _ArrayLike[_RealNumberT], /) -> _MaskedArray[_RealNumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rfloordiv__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __rfloordiv__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __rfloordiv__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rfloordiv__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rfloordiv__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rfloordiv__(self: _MaskedArray[timedelta64], other: _ArrayLike[timedelta64], /) -> _MaskedArray[int64]: ... |
| @overload |
| def __rfloordiv__(self: _MaskedArray[floating | integer], other: _ArrayLike[timedelta64], /) -> _MaskedArray[timedelta64]: ... |
| @overload |
| def __rfloordiv__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __rfloordiv__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # Keep in sync with `ndarray.__pow__` (minus the `mod` parameter) |
| @overload # type: ignore[override] |
| def __pow__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ... |
| @overload |
| def __pow__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __pow__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[int8]: ... # type: ignore[overload-overlap] |
| @overload |
| def __pow__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __pow__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __pow__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __pow__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __pow__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __pow__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __pow__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __pow__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __pow__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... |
| @overload |
| def __pow__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... |
| @overload |
| def __pow__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __pow__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # Keep in sync with `ndarray.__rpow__` (minus the `mod` parameter) |
| @overload # type: ignore[override] |
| def __rpow__(self: _MaskedArray[_NumberT], other: int | np.bool, /) -> MaskedArray[_ShapeT_co, dtype[_NumberT]]: ... |
| @overload |
| def __rpow__(self: _MaskedArray[_NumberT], other: _ArrayLikeBool_co, /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rpow__(self: _MaskedArray[np.bool], other: _ArrayLikeBool_co, /) -> _MaskedArray[int8]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rpow__(self: _MaskedArray[np.bool], other: _ArrayLike[_NumberT], /) -> _MaskedArray[_NumberT]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rpow__(self: _MaskedArray[float64], other: _ArrayLikeFloat64_co, /) -> _MaskedArray[float64]: ... |
| @overload |
| def __rpow__(self: _MaskedArrayFloat64_co, other: _ArrayLike[floating[_64Bit]], /) -> _MaskedArray[float64]: ... |
| @overload |
| def __rpow__(self: _MaskedArray[complex128], other: _ArrayLikeComplex128_co, /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __rpow__(self: _MaskedArrayComplex128_co, other: _ArrayLike[complexfloating[_64Bit]], /) -> _MaskedArray[complex128]: ... |
| @overload |
| def __rpow__(self: _MaskedArrayUInt_co, other: _ArrayLikeUInt_co, /) -> _MaskedArray[unsignedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rpow__(self: _MaskedArrayInt_co, other: _ArrayLikeInt_co, /) -> _MaskedArray[signedinteger]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rpow__(self: _MaskedArrayFloat_co, other: _ArrayLikeFloat_co, /) -> _MaskedArray[floating]: ... # type: ignore[overload-overlap] |
| @overload |
| def __rpow__(self: _MaskedArrayComplex_co, other: _ArrayLikeComplex_co, /) -> _MaskedArray[complexfloating]: ... |
| @overload |
| def __rpow__(self: _MaskedArray[number], other: _ArrayLikeNumber_co, /) -> _MaskedArray[number]: ... |
| @overload |
| def __rpow__(self: _MaskedArray[object_], other: Any, /) -> Any: ... |
| @overload |
| def __rpow__(self: _MaskedArray[Any], other: _ArrayLikeObject_co, /) -> Any: ... |
|
|
| # |
| @property # type: ignore[misc] |
| def imag(self: _HasDTypeWithRealAndImag[object, _ScalarT], /) -> MaskedArray[_ShapeT_co, dtype[_ScalarT]]: ... # type: ignore[override] |
| def get_imag(self: _HasDTypeWithRealAndImag[object, _ScalarT], /) -> MaskedArray[_ShapeT_co, dtype[_ScalarT]]: ... |
|
|
| # |
| @property # type: ignore[misc] |
| def real(self: _HasDTypeWithRealAndImag[_ScalarT, object], /) -> MaskedArray[_ShapeT_co, dtype[_ScalarT]]: ... # type: ignore[override] |
| def get_real(self: _HasDTypeWithRealAndImag[_ScalarT, object], /) -> MaskedArray[_ShapeT_co, dtype[_ScalarT]]: ... |
|
|
| # keep in sync with `np.ma.count` |
| @overload |
| def count(self, axis: None = None, keepdims: Literal[False] | _NoValueType = ...) -> int: ... |
| @overload |
| def count(self, axis: _ShapeLike, keepdims: bool | _NoValueType = ...) -> NDArray[int_]: ... |
| @overload |
| def count(self, axis: _ShapeLike | None = None, *, keepdims: Literal[True]) -> NDArray[int_]: ... |
| @overload |
| def count(self, axis: _ShapeLike | None, keepdims: Literal[True]) -> NDArray[int_]: ... |
|
|
| # Keep in sync with `ndarray.reshape` |
| # NOTE: reshape also accepts negative integers, so we can't use integer literals |
| @overload # (None) |
| def reshape(self, shape: None, /, *, order: _OrderACF = "C", copy: bool | None = None) -> Self: ... |
| @overload # (empty_sequence) |
| def reshape( # type: ignore[overload-overlap] # mypy false positive |
| self, |
| shape: Sequence[Never], |
| /, |
| *, |
| order: _OrderACF = "C", |
| copy: bool | None = None, |
| ) -> MaskedArray[tuple[()], _DTypeT_co]: ... |
| @overload # (() | (int) | (int, int) | ....) # up to 8-d |
| def reshape( |
| self, |
| shape: _AnyShapeT, |
| /, |
| *, |
| order: _OrderACF = "C", |
| copy: bool | None = None, |
| ) -> MaskedArray[_AnyShapeT, _DTypeT_co]: ... |
| @overload # (index) |
| def reshape( |
| self, |
| size1: SupportsIndex, |
| /, |
| *, |
| order: _OrderACF = "C", |
| copy: bool | None = None, |
| ) -> MaskedArray[tuple[int], _DTypeT_co]: ... |
| @overload # (index, index) |
| def reshape( |
| self, |
| size1: SupportsIndex, |
| size2: SupportsIndex, |
| /, |
| *, |
| order: _OrderACF = "C", |
| copy: bool | None = None, |
| ) -> MaskedArray[tuple[int, int], _DTypeT_co]: ... |
| @overload # (index, index, index) |
| def reshape( |
| self, |
| size1: SupportsIndex, |
| size2: SupportsIndex, |
| size3: SupportsIndex, |
| /, |
| *, |
| order: _OrderACF = "C", |
| copy: bool | None = None, |
| ) -> MaskedArray[tuple[int, int, int], _DTypeT_co]: ... |
| @overload # (index, index, index, index) |
| def reshape( |
| self, |
| size1: SupportsIndex, |
| size2: SupportsIndex, |
| size3: SupportsIndex, |
| size4: SupportsIndex, |
| /, |
| *, |
| order: _OrderACF = "C", |
| copy: bool | None = None, |
| ) -> MaskedArray[tuple[int, int, int, int], _DTypeT_co]: ... |
| @overload # (int, *(index, ...)) |
| def reshape( |
| self, |
| size0: SupportsIndex, |
| /, |
| *shape: SupportsIndex, |
| order: _OrderACF = "C", |
| copy: bool | None = None, |
| ) -> MaskedArray[_AnyShape, _DTypeT_co]: ... |
| @overload # (sequence[index]) |
| def reshape( |
| self, |
| shape: Sequence[SupportsIndex], |
| /, |
| *, |
| order: _OrderACF = "C", |
| copy: bool | None = None, |
| ) -> MaskedArray[_AnyShape, _DTypeT_co]: ... |
|
|
| def resize(self, newshape: Never, refcheck: bool = True, order: bool = False) -> NoReturn: ... # type: ignore[override] |
| def put(self, indices: _ArrayLikeInt_co, values: ArrayLike, mode: _ModeKind = "raise") -> None: ... |
| def ids(self) -> tuple[int, int]: ... |
| def iscontiguous(self) -> bool: ... |
|
|
| # Keep in sync with `ma.core.all` |
| @overload # type: ignore[override] |
| def all( |
| self, |
| axis: None = None, |
| out: None = None, |
| keepdims: Literal[False] | _NoValueType = ..., |
| ) -> bool_: ... |
| @overload |
| def all( |
| self, |
| axis: _ShapeLike | None = None, |
| out: None = None, |
| *, |
| keepdims: Literal[True], |
| ) -> _MaskedArray[bool_]: ... |
| @overload |
| def all( |
| self, |
| axis: _ShapeLike | None, |
| out: None, |
| keepdims: Literal[True], |
| ) -> _MaskedArray[bool_]: ... |
| @overload |
| def all( |
| self, |
| axis: _ShapeLike | None = None, |
| out: None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> bool_ | _MaskedArray[bool_]: ... |
| @overload |
| def all( |
| self, |
| axis: _ShapeLike | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def all( |
| self, |
| axis: _ShapeLike | None, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # Keep in sync with `ma.core.any` |
| @overload # type: ignore[override] |
| def any( |
| self, |
| axis: None = None, |
| out: None = None, |
| keepdims: Literal[False] | _NoValueType = ..., |
| ) -> bool_: ... |
| @overload |
| def any( |
| self, |
| axis: _ShapeLike | None = None, |
| out: None = None, |
| *, |
| keepdims: Literal[True], |
| ) -> _MaskedArray[bool_]: ... |
| @overload |
| def any( |
| self, |
| axis: _ShapeLike | None, |
| out: None, |
| keepdims: Literal[True], |
| ) -> _MaskedArray[bool_]: ... |
| @overload |
| def any( |
| self, |
| axis: _ShapeLike | None = None, |
| out: None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> bool_ | _MaskedArray[bool_]: ... |
| @overload |
| def any( |
| self, |
| axis: _ShapeLike | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def any( |
| self, |
| axis: _ShapeLike | None, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # Keep in sync with `ndarray.trace` and `ma.core.trace` |
| @overload |
| def trace( |
| self, # >= 2D MaskedArray |
| offset: SupportsIndex = 0, |
| axis1: SupportsIndex = 0, |
| axis2: SupportsIndex = 1, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| ) -> Any: ... |
| @overload |
| def trace( |
| self, # >= 2D MaskedArray |
| offset: SupportsIndex = 0, |
| axis1: SupportsIndex = 0, |
| axis2: SupportsIndex = 1, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| ) -> _ArrayT: ... |
| @overload |
| def trace( |
| self, # >= 2D MaskedArray |
| offset: SupportsIndex, |
| axis1: SupportsIndex, |
| axis2: SupportsIndex, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| ) -> _ArrayT: ... |
|
|
| # This differs from `ndarray.dot`, in that 1D dot 1D returns a 0D array. |
| @overload |
| def dot(self, b: ArrayLike, out: None = None, strict: bool = False) -> _MaskedArray[Any]: ... |
| @overload |
| def dot(self, b: ArrayLike, out: _ArrayT, strict: bool = False) -> _ArrayT: ... |
|
|
| # Keep in sync with `ma.core.sum` |
| @overload # type: ignore[override] |
| def sum( |
| self, |
| /, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> Any: ... |
| @overload |
| def sum( |
| self, |
| /, |
| axis: _ShapeLike | None, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def sum( |
| self, |
| /, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # Keep in sync with `ndarray.cumsum` and `ma.core.cumsum` |
| @overload # out: None (default) |
| def cumsum(self, /, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, out: None = None) -> _MaskedArray[Any]: ... |
| @overload # out: ndarray |
| def cumsum(self, /, axis: SupportsIndex | None, dtype: DTypeLike | None, out: _ArrayT) -> _ArrayT: ... |
| @overload |
| def cumsum(self, /, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, *, out: _ArrayT) -> _ArrayT: ... |
|
|
| # Keep in sync with `ma.core.prod` |
| @overload # type: ignore[override] |
| def prod( |
| self, |
| /, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> Any: ... |
| @overload |
| def prod( |
| self, |
| /, |
| axis: _ShapeLike | None, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def prod( |
| self, |
| /, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| product = prod |
|
|
| # Keep in sync with `ndarray.cumprod` and `ma.core.cumprod` |
| @overload # out: None (default) |
| def cumprod(self, /, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, out: None = None) -> _MaskedArray[Any]: ... |
| @overload # out: ndarray |
| def cumprod(self, /, axis: SupportsIndex | None, dtype: DTypeLike | None, out: _ArrayT) -> _ArrayT: ... |
| @overload |
| def cumprod(self, /, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, *, out: _ArrayT) -> _ArrayT: ... |
|
|
| # Keep in sync with `ma.core.mean` |
| @overload # type: ignore[override] |
| def mean( |
| self, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> Any: ... |
| @overload |
| def mean( |
| self, |
| /, |
| axis: _ShapeLike | None, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def mean( |
| self, |
| /, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # keep roughly in sync with `ma.core.anom` |
| @overload |
| def anom(self, axis: SupportsIndex | None = None, dtype: None = None) -> Self: ... |
| @overload |
| def anom(self, axis: SupportsIndex | None = None, *, dtype: DTypeLike) -> MaskedArray[_ShapeT_co, dtype]: ... |
| @overload |
| def anom(self, axis: SupportsIndex | None, dtype: DTypeLike) -> MaskedArray[_ShapeT_co, dtype]: ... |
|
|
| # keep in sync with `std` and `ma.core.var` |
| @overload # type: ignore[override] |
| def var( |
| self, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> Any: ... |
| @overload |
| def var( |
| self, |
| axis: _ShapeLike | None, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def var( |
| self, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # keep in sync with `var` and `ma.core.std` |
| @overload # type: ignore[override] |
| def std( |
| self, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> Any: ... |
| @overload |
| def std( |
| self, |
| axis: _ShapeLike | None, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def std( |
| self, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # Keep in sync with `ndarray.round` |
| @overload # out=None (default) |
| def round(self, /, decimals: SupportsIndex = 0, out: None = None) -> Self: ... |
| @overload # out=ndarray |
| def round(self, /, decimals: SupportsIndex, out: _ArrayT) -> _ArrayT: ... |
| @overload |
| def round(self, /, decimals: SupportsIndex = 0, *, out: _ArrayT) -> _ArrayT: ... |
|
|
| def argsort( # type: ignore[override] |
| self, |
| axis: SupportsIndex | _NoValueType = ..., |
| kind: _SortKind | None = None, |
| order: str | Sequence[str] | None = None, |
| endwith: bool = True, |
| fill_value: _ScalarLike_co | None = None, |
| *, |
| stable: bool = False, |
| ) -> _MaskedArray[intp]: ... |
|
|
| # Keep in-sync with np.ma.argmin |
| @overload # type: ignore[override] |
| def argmin( |
| self, |
| axis: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| out: None = None, |
| *, |
| keepdims: Literal[False] | _NoValueType = ..., |
| ) -> intp: ... |
| @overload |
| def argmin( |
| self, |
| axis: SupportsIndex | None = None, |
| fill_value: _ScalarLike_co | None = None, |
| out: None = None, |
| *, |
| keepdims: bool | _NoValueType = ..., |
| ) -> Any: ... |
| @overload |
| def argmin( |
| self, |
| axis: SupportsIndex | None = None, |
| fill_value: _ScalarLike_co | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def argmin( |
| self, |
| axis: SupportsIndex | None, |
| fill_value: _ScalarLike_co | None, |
| out: _ArrayT, |
| *, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # Keep in-sync with np.ma.argmax |
| @overload # type: ignore[override] |
| def argmax( |
| self, |
| axis: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| out: None = None, |
| *, |
| keepdims: Literal[False] | _NoValueType = ..., |
| ) -> intp: ... |
| @overload |
| def argmax( |
| self, |
| axis: SupportsIndex | None = None, |
| fill_value: _ScalarLike_co | None = None, |
| out: None = None, |
| *, |
| keepdims: bool | _NoValueType = ..., |
| ) -> Any: ... |
| @overload |
| def argmax( |
| self, |
| axis: SupportsIndex | None = None, |
| fill_value: _ScalarLike_co | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def argmax( |
| self, |
| axis: SupportsIndex | None, |
| fill_value: _ScalarLike_co | None, |
| out: _ArrayT, |
| *, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # |
| def sort( # type: ignore[override] |
| self, |
| axis: SupportsIndex = -1, |
| kind: _SortKind | None = None, |
| order: str | Sequence[str] | None = None, |
| endwith: bool | None = True, |
| fill_value: _ScalarLike_co | None = None, |
| *, |
| stable: Literal[False] | None = False, |
| ) -> None: ... |
|
|
| # |
| @overload # type: ignore[override] |
| def min( |
| self: _MaskedArray[_ScalarT], |
| axis: None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: Literal[False] | _NoValueType = ..., |
| ) -> _ScalarT: ... |
| @overload |
| def min( |
| self, |
| axis: _ShapeLike | None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ... |
| ) -> Any: ... |
| @overload |
| def min( |
| self, |
| axis: _ShapeLike | None, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def min( |
| self, |
| axis: _ShapeLike | None = None, |
| *, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # |
| @overload # type: ignore[override] |
| def max( |
| self: _MaskedArray[_ScalarT], |
| axis: None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: Literal[False] | _NoValueType = ..., |
| ) -> _ScalarT: ... |
| @overload |
| def max( |
| self, |
| axis: _ShapeLike | None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ... |
| ) -> Any: ... |
| @overload |
| def max( |
| self, |
| axis: _ShapeLike | None, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def max( |
| self, |
| axis: _ShapeLike | None = None, |
| *, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # |
| @overload |
| def ptp( |
| self: _MaskedArray[_ScalarT], |
| axis: None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: Literal[False] = False, |
| ) -> _ScalarT: ... |
| @overload |
| def ptp( |
| self, |
| axis: _ShapeLike | None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool = False, |
| ) -> Any: ... |
| @overload |
| def ptp( |
| self, |
| axis: _ShapeLike | None, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool = False, |
| ) -> _ArrayT: ... |
| @overload |
| def ptp( |
| self, |
| axis: _ShapeLike | None = None, |
| *, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool = False, |
| ) -> _ArrayT: ... |
|
|
| # |
| @overload |
| def partition( |
| self, |
| /, |
| kth: _ArrayLikeInt, |
| axis: SupportsIndex = -1, |
| kind: _PartitionKind = "introselect", |
| order: None = None |
| ) -> None: ... |
| @overload |
| def partition( |
| self: _MaskedArray[np.void], |
| /, |
| kth: _ArrayLikeInt, |
| axis: SupportsIndex = -1, |
| kind: _PartitionKind = "introselect", |
| order: str | Sequence[str] | None = None, |
| ) -> None: ... |
|
|
| # |
| @overload |
| def argpartition( |
| self, |
| /, |
| kth: _ArrayLikeInt, |
| axis: SupportsIndex | None = -1, |
| kind: _PartitionKind = "introselect", |
| order: None = None, |
| ) -> _MaskedArray[intp]: ... |
| @overload |
| def argpartition( |
| self: _MaskedArray[np.void], |
| /, |
| kth: _ArrayLikeInt, |
| axis: SupportsIndex | None = -1, |
| kind: _PartitionKind = "introselect", |
| order: str | Sequence[str] | None = None, |
| ) -> _MaskedArray[intp]: ... |
|
|
| # Keep in-sync with np.ma.take |
| @overload # type: ignore[override] |
| def take( # type: ignore[overload-overlap] |
| self: _MaskedArray[_ScalarT], |
| indices: _IntLike_co, |
| axis: None = None, |
| out: None = None, |
| mode: _ModeKind = "raise" |
| ) -> _ScalarT: ... |
| @overload |
| def take( |
| self: _MaskedArray[_ScalarT], |
| indices: _ArrayLikeInt_co, |
| axis: SupportsIndex | None = None, |
| out: None = None, |
| mode: _ModeKind = "raise", |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def take( |
| self, |
| indices: _ArrayLikeInt_co, |
| axis: SupportsIndex | None, |
| out: _ArrayT, |
| mode: _ModeKind = "raise", |
| ) -> _ArrayT: ... |
| @overload |
| def take( |
| self, |
| indices: _ArrayLikeInt_co, |
| axis: SupportsIndex | None = None, |
| *, |
| out: _ArrayT, |
| mode: _ModeKind = "raise", |
| ) -> _ArrayT: ... |
|
|
| # keep in sync with `ndarray.diagonal` |
| @override |
| def diagonal( |
| self, |
| /, |
| offset: SupportsIndex = 0, |
| axis1: SupportsIndex = 0, |
| axis2: SupportsIndex = 1, |
| ) -> MaskedArray[_AnyShape, _DTypeT_co]: ... |
|
|
| # keep in sync with `ndarray.repeat` |
| @override |
| @overload |
| def repeat( |
| self, |
| /, |
| repeats: _ArrayLikeInt_co, |
| axis: None = None, |
| ) -> MaskedArray[tuple[int], _DTypeT_co]: ... |
| @overload |
| def repeat( |
| self, |
| /, |
| repeats: _ArrayLikeInt_co, |
| axis: SupportsIndex, |
| ) -> MaskedArray[_AnyShape, _DTypeT_co]: ... |
|
|
| # keep in sync with `ndarray.flatten` and `ndarray.ravel` |
| @override |
| def flatten(self, /, order: _OrderKACF = "C") -> MaskedArray[tuple[int], _DTypeT_co]: ... |
| @override |
| def ravel(self, order: _OrderKACF = "C") -> MaskedArray[tuple[int], _DTypeT_co]: ... |
|
|
| # keep in sync with `ndarray.squeeze` |
| @override |
| def squeeze( |
| self, |
| /, |
| axis: SupportsIndex | tuple[SupportsIndex, ...] | None = None, |
| ) -> MaskedArray[_AnyShape, _DTypeT_co]: ... |
|
|
| # |
| def toflex(self) -> MaskedArray[_ShapeT_co, np.dtype[np.void]]: ... |
| def torecords(self) -> MaskedArray[_ShapeT_co, np.dtype[np.void]]: ... |
|
|
| # |
| @override |
| def tobytes(self, /, fill_value: Incomplete | None = None, order: _OrderKACF = "C") -> bytes: ... # type: ignore[override] |
|
|
| # keep in sync with `ndarray.tolist` |
| @override |
| @overload |
| def tolist(self: MaskedArray[tuple[Never], dtype[generic[_T]]], /, fill_value: _ScalarLike_co | None = None) -> Any: ... |
| @overload |
| def tolist(self: MaskedArray[tuple[()], dtype[generic[_T]]], /, fill_value: _ScalarLike_co | None = None) -> _T: ... |
| @overload |
| def tolist(self: MaskedArray[tuple[int], dtype[generic[_T]]], /, fill_value: _ScalarLike_co | None = None) -> list[_T]: ... |
| @overload |
| def tolist( |
| self: MaskedArray[tuple[int, int], dtype[generic[_T]]], /, fill_value: _ScalarLike_co | None = None |
| ) -> list[list[_T]]: ... |
| @overload |
| def tolist( |
| self: MaskedArray[tuple[int, int, int], dtype[generic[_T]]], /, fill_value: _ScalarLike_co | None = None |
| ) -> list[list[list[_T]]]: ... |
| @overload |
| def tolist(self, /, fill_value: _ScalarLike_co | None = None) -> Any: ... |
|
|
| # NOTE: will raise `NotImplementedError` |
| @override |
| def tofile(self, /, fid: Never, sep: str = "", format: str = "%s") -> NoReturn: ... # type: ignore[override] |
|
|
| # |
| @override |
| def __deepcopy__(self, memo: dict[int, Any] | None = None) -> Self: ... |
|
|
| # Keep `dtype` at the bottom to avoid name conflicts with `np.dtype` |
| @property |
| def dtype(self) -> _DTypeT_co: ... |
| @dtype.setter |
| def dtype(self: MaskedArray[_AnyShape, _DTypeT], dtype: _DTypeT, /) -> None: ... |
|
|
| class mvoid(MaskedArray[_ShapeT_co, _DTypeT_co]): |
| def __new__( |
| self, # pyright: ignore[reportSelfClsParameterName] |
| data, |
| mask=..., |
| dtype=..., |
| fill_value=..., |
| hardmask=..., |
| copy=..., |
| subok=..., |
| ): ... |
| def __getitem__(self, indx): ... |
| def __setitem__(self, indx, value): ... |
| def __iter__(self): ... |
| def __len__(self): ... |
| def filled(self, fill_value=None): ... |
| def tolist(self): ... # type: ignore[override] |
|
|
| def isMaskedArray(x: object) -> TypeIs[MaskedArray]: ... |
| def isarray(x: object) -> TypeIs[MaskedArray]: ... # alias to isMaskedArray |
| def isMA(x: object) -> TypeIs[MaskedArray]: ... # alias to isMaskedArray |
|
|
| # 0D float64 array |
| class MaskedConstant(MaskedArray[tuple[()], dtype[float64]]): |
| def __new__(cls) -> Self: ... |
|
|
| # these overrides are no-ops |
| @override |
| def __iadd__(self, other: _Ignored, /) -> Self: ... # type: ignore[override] |
| @override |
| def __isub__(self, other: _Ignored, /) -> Self: ... # type: ignore[override] |
| @override |
| def __imul__(self, other: _Ignored, /) -> Self: ... # type: ignore[override] |
| @override |
| def __ifloordiv__(self, other: _Ignored, /) -> Self: ... |
| @override |
| def __itruediv__(self, other: _Ignored, /) -> Self: ... # type: ignore[override] |
| @override |
| def __ipow__(self, other: _Ignored, /) -> Self: ... # type: ignore[override] |
| @override |
| def __deepcopy__(self, /, memo: _Ignored) -> Self: ... # type: ignore[override] |
| @override |
| def copy(self, /, *args: _Ignored, **kwargs: _Ignored) -> Self: ... |
|
|
| masked: Final[MaskedConstant] = ... |
| masked_singleton: Final[MaskedConstant] = ... |
|
|
| masked_array: TypeAlias = MaskedArray |
|
|
| # keep in sync with `MaskedArray.__new__` |
| @overload |
| def array( |
| data: _ArrayLike[_ScalarT], |
| dtype: None = None, |
| copy: bool = False, |
| order: _OrderKACF | None = None, |
| mask: _ArrayLikeBool_co = nomask, |
| fill_value: _ScalarLike_co | None = None, |
| keep_mask: bool = True, |
| hard_mask: bool = False, |
| shrink: bool = True, |
| subok: bool = True, |
| ndmin: int = 0, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def array( |
| data: object, |
| dtype: _DTypeLike[_ScalarT], |
| copy: bool = False, |
| order: _OrderKACF | None = None, |
| mask: _ArrayLikeBool_co = nomask, |
| fill_value: _ScalarLike_co | None = None, |
| keep_mask: bool = True, |
| hard_mask: bool = False, |
| shrink: bool = True, |
| subok: bool = True, |
| ndmin: int = 0, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def array( |
| data: object, |
| dtype: DTypeLike | None = None, |
| copy: bool = False, |
| order: _OrderKACF | None = None, |
| mask: _ArrayLikeBool_co = nomask, |
| fill_value: _ScalarLike_co | None = None, |
| keep_mask: bool = True, |
| hard_mask: bool = False, |
| shrink: bool = True, |
| subok: bool = True, |
| ndmin: int = 0, |
| ) -> _MaskedArray[_ScalarT]: ... |
|
|
| # keep in sync with `array` |
| @overload |
| def asarray(a: _ArrayLike[_ScalarT], dtype: None = None, order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def asarray(a: object, dtype: _DTypeLike[_ScalarT], order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def asarray(a: object, dtype: DTypeLike | None = None, order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ... |
|
|
| # keep in sync with `asarray` (but note the additional first overload) |
| @overload |
| def asanyarray(a: _MArrayT, dtype: None = None, order: _OrderKACF | None = None) -> _MArrayT: ... |
| @overload |
| def asanyarray(a: _ArrayLike[_ScalarT], dtype: None = None, order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def asanyarray(a: object, dtype: _DTypeLike[_ScalarT], order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def asanyarray(a: object, dtype: DTypeLike | None = None, order: _OrderKACF | None = None) -> _MaskedArray[_ScalarT]: ... |
|
|
| # |
| def is_masked(x: object) -> bool: ... |
|
|
| @overload |
| def min( |
| obj: _ArrayLike[_ScalarT], |
| axis: None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: Literal[False] | _NoValueType = ..., |
| ) -> _ScalarT: ... |
| @overload |
| def min( |
| obj: ArrayLike, |
| axis: _ShapeLike | None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ... |
| ) -> Any: ... |
| @overload |
| def min( |
| obj: ArrayLike, |
| axis: _ShapeLike | None, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def min( |
| obj: ArrayLike, |
| axis: _ShapeLike | None = None, |
| *, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| @overload |
| def max( |
| obj: _ArrayLike[_ScalarT], |
| axis: None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: Literal[False] | _NoValueType = ..., |
| ) -> _ScalarT: ... |
| @overload |
| def max( |
| obj: ArrayLike, |
| axis: _ShapeLike | None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ... |
| ) -> Any: ... |
| @overload |
| def max( |
| obj: ArrayLike, |
| axis: _ShapeLike | None, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def max( |
| obj: ArrayLike, |
| axis: _ShapeLike | None = None, |
| *, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| @overload |
| def ptp( |
| obj: _ArrayLike[_ScalarT], |
| axis: None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: Literal[False] | _NoValueType = ..., |
| ) -> _ScalarT: ... |
| @overload |
| def ptp( |
| obj: ArrayLike, |
| axis: _ShapeLike | None = None, |
| out: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ... |
| ) -> Any: ... |
| @overload |
| def ptp( |
| obj: ArrayLike, |
| axis: _ShapeLike | None, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def ptp( |
| obj: ArrayLike, |
| axis: _ShapeLike | None = None, |
| *, |
| out: _ArrayT, |
| fill_value: _ScalarLike_co | None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # we cannot meaningfully annotate `frommethod` further, because the callable signature |
| # of the return type fully depends on the *value* of `methodname` and `reversed` in |
| # a way that cannot be expressed in the Python type system. |
| def _frommethod(methodname: str, reversed: bool = False) -> types.FunctionType: ... |
|
|
| # NOTE: The following `*_mask` functions will accept any array-like input runtime, but |
| # since their use-cases are specific to masks, they only accept `MaskedArray` inputs. |
|
|
| # keep in sync with `MaskedArray.harden_mask` |
| def harden_mask(a: _MArrayT) -> _MArrayT: ... |
| # keep in sync with `MaskedArray.soften_mask` |
| def soften_mask(a: _MArrayT) -> _MArrayT: ... |
| # keep in sync with `MaskedArray.shrink_mask` |
| def shrink_mask(a: _MArrayT) -> _MArrayT: ... |
|
|
| # keep in sync with `MaskedArray.ids` |
| def ids(a: ArrayLike) -> tuple[int, int]: ... |
|
|
| # keep in sync with `ndarray.nonzero` |
| def nonzero(a: ArrayLike) -> tuple[ndarray[tuple[int], np.dtype[intp]], ...]: ... |
|
|
| # keep first overload in sync with `MaskedArray.ravel` |
| @overload |
| def ravel(a: np.ndarray[Any, _DTypeT], order: _OrderKACF = "C") -> MaskedArray[tuple[int], _DTypeT]: ... |
| @overload |
| def ravel(a: _ArrayLike[_ScalarT], order: _OrderKACF = "C") -> MaskedArray[tuple[int], np.dtype[_ScalarT]]: ... |
| @overload |
| def ravel(a: ArrayLike, order: _OrderKACF = "C") -> MaskedArray[tuple[int], _DTypeT_co]: ... |
|
|
| # keep roughly in sync with `lib._function_base_impl.copy` |
| @overload |
| def copy(a: _MArrayT, order: _OrderKACF = "C") -> _MArrayT: ... |
| @overload |
| def copy(a: np.ndarray[_ShapeT, _DTypeT], order: _OrderKACF = "C") -> MaskedArray[_ShapeT, _DTypeT]: ... |
| @overload |
| def copy(a: _ArrayLike[_ScalarT], order: _OrderKACF = "C") -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def copy(a: ArrayLike, order: _OrderKACF = "C") -> _MaskedArray[Incomplete]: ... |
|
|
| # keep in sync with `_core.fromnumeric.diagonal` |
| @overload |
| def diagonal( |
| a: _ArrayLike[_ScalarT], |
| offset: SupportsIndex = 0, |
| axis1: SupportsIndex = 0, |
| axis2: SupportsIndex = 1, |
| ) -> NDArray[_ScalarT]: ... |
| @overload |
| def diagonal( |
| a: ArrayLike, |
| offset: SupportsIndex = 0, |
| axis1: SupportsIndex = 0, |
| axis2: SupportsIndex = 1, |
| ) -> NDArray[Incomplete]: ... |
|
|
| # keep in sync with `_core.fromnumeric.repeat` |
| @overload |
| def repeat(a: _ArrayLike[_ScalarT], repeats: _ArrayLikeInt_co, axis: None = None) -> MaskedArray[tuple[int], dtype[_ScalarT]]: ... |
| @overload |
| def repeat(a: _ArrayLike[_ScalarT], repeats: _ArrayLikeInt_co, axis: SupportsIndex) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def repeat(a: ArrayLike, repeats: _ArrayLikeInt_co, axis: None = None) -> MaskedArray[tuple[int], dtype[Incomplete]]: ... |
| @overload |
| def repeat(a: ArrayLike, repeats: _ArrayLikeInt_co, axis: SupportsIndex) -> _MaskedArray[Incomplete]: ... |
|
|
| # keep in sync with `_core.fromnumeric.swapaxes` |
| @overload |
| def swapaxes(a: _MArrayT, axis1: SupportsIndex, axis2: SupportsIndex) -> _MArrayT: ... |
| @overload |
| def swapaxes(a: _ArrayLike[_ScalarT], axis1: SupportsIndex, axis2: SupportsIndex) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def swapaxes(a: ArrayLike, axis1: SupportsIndex, axis2: SupportsIndex) -> _MaskedArray[Incomplete]: ... |
|
|
| # NOTE: The `MaskedArray.anom` definition is specific to `MaskedArray`, so we need |
| # additional overloads to cover the array-like input here. |
| @overload # a: MaskedArray, dtype=None |
| def anom(a: _MArrayT, axis: SupportsIndex | None = None, dtype: None = None) -> _MArrayT: ... |
| @overload # a: array-like, dtype=None |
| def anom(a: _ArrayLike[_ScalarT], axis: SupportsIndex | None = None, dtype: None = None) -> _MaskedArray[_ScalarT]: ... |
| @overload # a: unknown array-like, dtype: dtype-like (positional) |
| def anom(a: ArrayLike, axis: SupportsIndex | None, dtype: _DTypeLike[_ScalarT]) -> _MaskedArray[_ScalarT]: ... |
| @overload # a: unknown array-like, dtype: dtype-like (keyword) |
| def anom(a: ArrayLike, axis: SupportsIndex | None = None, *, dtype: _DTypeLike[_ScalarT]) -> _MaskedArray[_ScalarT]: ... |
| @overload # a: unknown array-like, dtype: unknown dtype-like (positional) |
| def anom(a: ArrayLike, axis: SupportsIndex | None, dtype: DTypeLike) -> _MaskedArray[Incomplete]: ... |
| @overload # a: unknown array-like, dtype: unknown dtype-like (keyword) |
| def anom(a: ArrayLike, axis: SupportsIndex | None = None, *, dtype: DTypeLike) -> _MaskedArray[Incomplete]: ... |
|
|
| anomalies = anom |
|
|
| # Keep in sync with `any` and `MaskedArray.all` |
| @overload |
| def all(a: ArrayLike, axis: None = None, out: None = None, keepdims: Literal[False] | _NoValueType = ...) -> np.bool: ... |
| @overload |
| def all(a: ArrayLike, axis: _ShapeLike | None, out: None, keepdims: Literal[True]) -> _MaskedArray[np.bool]: ... |
| @overload |
| def all(a: ArrayLike, axis: _ShapeLike | None = None, out: None = None, *, keepdims: Literal[True]) -> _MaskedArray[np.bool]: ... |
| @overload |
| def all( |
| a: ArrayLike, axis: _ShapeLike | None = None, out: None = None, keepdims: bool | _NoValueType = ... |
| ) -> np.bool | _MaskedArray[np.bool]: ... |
| @overload |
| def all(a: ArrayLike, axis: _ShapeLike | None, out: _ArrayT, keepdims: bool | _NoValueType = ...) -> _ArrayT: ... |
| @overload |
| def all(a: ArrayLike, axis: _ShapeLike | None = None, *, out: _ArrayT, keepdims: bool | _NoValueType = ...) -> _ArrayT: ... |
|
|
| # Keep in sync with `all` and `MaskedArray.any` |
| @overload |
| def any(a: ArrayLike, axis: None = None, out: None = None, keepdims: Literal[False] | _NoValueType = ...) -> np.bool: ... |
| @overload |
| def any(a: ArrayLike, axis: _ShapeLike | None, out: None, keepdims: Literal[True]) -> _MaskedArray[np.bool]: ... |
| @overload |
| def any(a: ArrayLike, axis: _ShapeLike | None = None, out: None = None, *, keepdims: Literal[True]) -> _MaskedArray[np.bool]: ... |
| @overload |
| def any( |
| a: ArrayLike, axis: _ShapeLike | None = None, out: None = None, keepdims: bool | _NoValueType = ... |
| ) -> np.bool | _MaskedArray[np.bool]: ... |
| @overload |
| def any(a: ArrayLike, axis: _ShapeLike | None, out: _ArrayT, keepdims: bool | _NoValueType = ...) -> _ArrayT: ... |
| @overload |
| def any(a: ArrayLike, axis: _ShapeLike | None = None, *, out: _ArrayT, keepdims: bool | _NoValueType = ...) -> _ArrayT: ... |
|
|
| # NOTE: The `MaskedArray.compress` definition uses its `DTypeT_co` type parameter, |
| # which wouldn't work here for array-like inputs, so we need additional overloads. |
| @overload |
| def compress( |
| condition: _ArrayLikeBool_co, a: _ArrayLike[_ScalarT], axis: None = None, out: None = None |
| ) -> MaskedArray[tuple[int], np.dtype[_ScalarT]]: ... |
| @overload |
| def compress( |
| condition: _ArrayLikeBool_co, a: _ArrayLike[_ScalarT], axis: _ShapeLike | None = None, out: None = None |
| ) -> MaskedArray[_AnyShape, np.dtype[_ScalarT]]: ... |
| @overload |
| def compress(condition: _ArrayLikeBool_co, a: ArrayLike, axis: None = None, out: None = None) -> MaskedArray[tuple[int]]: ... |
| @overload |
| def compress( |
| condition: _ArrayLikeBool_co, a: ArrayLike, axis: _ShapeLike | None = None, out: None = None |
| ) -> _MaskedArray[Incomplete]: ... |
| @overload |
| def compress(condition: _ArrayLikeBool_co, a: ArrayLike, axis: _ShapeLike | None, out: _ArrayT) -> _ArrayT: ... |
| @overload |
| def compress(condition: _ArrayLikeBool_co, a: ArrayLike, axis: _ShapeLike | None = None, *, out: _ArrayT) -> _ArrayT: ... |
|
|
| # Keep in sync with `cumprod` and `MaskedArray.cumsum` |
| @overload # out: None (default) |
| def cumsum( |
| a: ArrayLike, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, out: None = None |
| ) -> _MaskedArray[Incomplete]: ... |
| @overload # out: ndarray (positional) |
| def cumsum(a: ArrayLike, axis: SupportsIndex | None, dtype: DTypeLike | None, out: _ArrayT) -> _ArrayT: ... |
| @overload # out: ndarray (kwarg) |
| def cumsum(a: ArrayLike, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, *, out: _ArrayT) -> _ArrayT: ... |
|
|
| # Keep in sync with `cumsum` and `MaskedArray.cumsum` |
| @overload # out: None (default) |
| def cumprod( |
| a: ArrayLike, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, out: None = None |
| ) -> _MaskedArray[Incomplete]: ... |
| @overload # out: ndarray (positional) |
| def cumprod(a: ArrayLike, axis: SupportsIndex | None, dtype: DTypeLike | None, out: _ArrayT) -> _ArrayT: ... |
| @overload # out: ndarray (kwarg) |
| def cumprod(a: ArrayLike, axis: SupportsIndex | None = None, dtype: DTypeLike | None = None, *, out: _ArrayT) -> _ArrayT: ... |
|
|
| # Keep in sync with `sum`, `prod`, `product`, and `MaskedArray.mean` |
| @overload |
| def mean( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> Incomplete: ... |
| @overload |
| def mean( |
| a: ArrayLike, |
| axis: _ShapeLike | None, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def mean( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # Keep in sync with `mean`, `prod`, `product`, and `MaskedArray.sum` |
| @overload |
| def sum( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> Incomplete: ... |
| @overload |
| def sum( |
| a: ArrayLike, |
| axis: _ShapeLike | None, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def sum( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # Keep in sync with `product` and `MaskedArray.prod` |
| @overload |
| def prod( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> Incomplete: ... |
| @overload |
| def prod( |
| a: ArrayLike, |
| axis: _ShapeLike | None, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def prod( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # Keep in sync with `prod` and `MaskedArray.prod` |
| @overload |
| def product( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| keepdims: bool | _NoValueType = ..., |
| ) -> Incomplete: ... |
| @overload |
| def product( |
| a: ArrayLike, |
| axis: _ShapeLike | None, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def product( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # Keep in sync with `MaskedArray.trace` and `_core.fromnumeric.trace` |
| @overload |
| def trace( |
| a: ArrayLike, |
| offset: SupportsIndex = 0, |
| axis1: SupportsIndex = 0, |
| axis2: SupportsIndex = 1, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| ) -> Incomplete: ... |
| @overload |
| def trace( |
| a: ArrayLike, |
| offset: SupportsIndex, |
| axis1: SupportsIndex, |
| axis2: SupportsIndex, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| ) -> _ArrayT: ... |
| @overload |
| def trace( |
| a: ArrayLike, |
| offset: SupportsIndex = 0, |
| axis1: SupportsIndex = 0, |
| axis2: SupportsIndex = 1, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| ) -> _ArrayT: ... |
|
|
| # keep in sync with `std` and `MaskedArray.var` |
| @overload |
| def std( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> Incomplete: ... |
| @overload |
| def std( |
| a: ArrayLike, |
| axis: _ShapeLike | None, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def std( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # keep in sync with `std` and `MaskedArray.var` |
| @overload |
| def var( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| out: None = None, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> Incomplete: ... |
| @overload |
| def var( |
| a: ArrayLike, |
| axis: _ShapeLike | None, |
| dtype: DTypeLike | None, |
| out: _ArrayT, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def var( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| dtype: DTypeLike | None = None, |
| *, |
| out: _ArrayT, |
| ddof: float = 0, |
| keepdims: bool | _NoValueType = ..., |
| mean: _ArrayLikeNumber_co | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # (a, b) |
| minimum: _extrema_operation = ... |
| maximum: _extrema_operation = ... |
|
|
| # NOTE: this is a `_frommethod` instance at runtime |
| @overload |
| def count(a: ArrayLike, axis: None = None, keepdims: Literal[False] | _NoValueType = ...) -> int: ... |
| @overload |
| def count(a: ArrayLike, axis: _ShapeLike, keepdims: bool | _NoValueType = ...) -> NDArray[int_]: ... |
| @overload |
| def count(a: ArrayLike, axis: _ShapeLike | None = None, *, keepdims: Literal[True]) -> NDArray[int_]: ... |
| @overload |
| def count(a: ArrayLike, axis: _ShapeLike | None, keepdims: Literal[True]) -> NDArray[int_]: ... |
|
|
| # NOTE: this is a `_frommethod` instance at runtime |
| @overload |
| def argmin( |
| a: ArrayLike, |
| axis: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| out: None = None, |
| *, |
| keepdims: Literal[False] | _NoValueType = ..., |
| ) -> intp: ... |
| @overload |
| def argmin( |
| a: ArrayLike, |
| axis: SupportsIndex | None = None, |
| fill_value: _ScalarLike_co | None = None, |
| out: None = None, |
| *, |
| keepdims: bool | _NoValueType = ..., |
| ) -> Any: ... |
| @overload |
| def argmin( |
| a: ArrayLike, |
| axis: SupportsIndex | None = None, |
| fill_value: _ScalarLike_co | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def argmin( |
| a: ArrayLike, |
| axis: SupportsIndex | None, |
| fill_value: _ScalarLike_co | None, |
| out: _ArrayT, |
| *, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| # keep in sync with `argmin` |
| @overload |
| def argmax( |
| a: ArrayLike, |
| axis: None = None, |
| fill_value: _ScalarLike_co | None = None, |
| out: None = None, |
| *, |
| keepdims: Literal[False] | _NoValueType = ..., |
| ) -> intp: ... |
| @overload |
| def argmax( |
| a: ArrayLike, |
| axis: SupportsIndex | None = None, |
| fill_value: _ScalarLike_co | None = None, |
| out: None = None, |
| *, |
| keepdims: bool | _NoValueType = ..., |
| ) -> Any: ... |
| @overload |
| def argmax( |
| a: ArrayLike, |
| axis: SupportsIndex | None = None, |
| fill_value: _ScalarLike_co | None = None, |
| *, |
| out: _ArrayT, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
| @overload |
| def argmax( |
| a: ArrayLike, |
| axis: SupportsIndex | None, |
| fill_value: _ScalarLike_co | None, |
| out: _ArrayT, |
| *, |
| keepdims: bool | _NoValueType = ..., |
| ) -> _ArrayT: ... |
|
|
| @overload |
| def take( |
| a: _ArrayLike[_ScalarT], |
| indices: _IntLike_co, |
| axis: None = None, |
| out: None = None, |
| mode: _ModeKind = "raise" |
| ) -> _ScalarT: ... |
| @overload |
| def take( |
| a: _ArrayLike[_ScalarT], |
| indices: _ArrayLikeInt_co, |
| axis: SupportsIndex | None = None, |
| out: None = None, |
| mode: _ModeKind = "raise", |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def take( |
| a: ArrayLike, |
| indices: _IntLike_co, |
| axis: SupportsIndex | None = None, |
| out: None = None, |
| mode: _ModeKind = "raise", |
| ) -> Any: ... |
| @overload |
| def take( |
| a: ArrayLike, |
| indices: _ArrayLikeInt_co, |
| axis: SupportsIndex | None = None, |
| out: None = None, |
| mode: _ModeKind = "raise", |
| ) -> _MaskedArray[Any]: ... |
| @overload |
| def take( |
| a: ArrayLike, |
| indices: _ArrayLikeInt_co, |
| axis: SupportsIndex | None, |
| out: _ArrayT, |
| mode: _ModeKind = "raise", |
| ) -> _ArrayT: ... |
| @overload |
| def take( |
| a: ArrayLike, |
| indices: _ArrayLikeInt_co, |
| axis: SupportsIndex | None = None, |
| *, |
| out: _ArrayT, |
| mode: _ModeKind = "raise", |
| ) -> _ArrayT: ... |
|
|
| def power(a, b, third=None): ... |
| def argsort(a, axis=..., kind=None, order=None, endwith=True, fill_value=None, *, stable=None): ... |
| @overload |
| def sort( |
| a: _ArrayT, |
| axis: SupportsIndex = -1, |
| kind: _SortKind | None = None, |
| order: str | Sequence[str] | None = None, |
| endwith: bool | None = True, |
| fill_value: _ScalarLike_co | None = None, |
| *, |
| stable: Literal[False] | None = None, |
| ) -> _ArrayT: ... |
| @overload |
| def sort( |
| a: ArrayLike, |
| axis: SupportsIndex = -1, |
| kind: _SortKind | None = None, |
| order: str | Sequence[str] | None = None, |
| endwith: bool | None = True, |
| fill_value: _ScalarLike_co | None = None, |
| *, |
| stable: Literal[False] | None = None, |
| ) -> NDArray[Any]: ... |
| @overload |
| def compressed(x: _ArrayLike[_ScalarT_co]) -> _Array1D[_ScalarT_co]: ... |
| @overload |
| def compressed(x: ArrayLike) -> _Array1D[Any]: ... |
| def concatenate(arrays, axis=0): ... |
| def diag(v, k=0): ... |
| def left_shift(a, n): ... |
| def right_shift(a, n): ... |
| def put(a: NDArray[Any], indices: _ArrayLikeInt_co, values: ArrayLike, mode: _ModeKind = "raise") -> None: ... |
| def putmask(a: NDArray[Any], mask: _ArrayLikeBool_co, values: ArrayLike) -> None: ... |
| def transpose(a, axes=None): ... |
| def reshape(a, new_shape, order="C"): ... |
| def resize(x, new_shape): ... |
| def ndim(obj: ArrayLike) -> int: ... |
| def shape(obj): ... |
| def size(obj: ArrayLike, axis: SupportsIndex | None = None) -> int: ... |
| def diff(a, /, n=1, axis=-1, prepend=..., append=...): ... |
| def where(condition, x=..., y=...): ... |
| def choose(indices, choices, out=None, mode="raise"): ... |
| def round_(a, decimals=0, out=None): ... |
| round = round_ |
|
|
| def inner(a, b): ... |
| innerproduct = inner |
|
|
| def outer(a, b): ... |
| outerproduct = outer |
|
|
| def correlate(a, v, mode="valid", propagate_mask=True): ... |
| def convolve(a, v, mode="full", propagate_mask=True): ... |
|
|
| def allequal(a: ArrayLike, b: ArrayLike, fill_value: bool = True) -> bool: ... |
|
|
| def allclose(a: ArrayLike, b: ArrayLike, masked_equal: bool = True, rtol: float = 1e-5, atol: float = 1e-8) -> bool: ... |
|
|
| def fromflex(fxarray): ... |
|
|
| def append(a, b, axis=None): ... |
| def dot(a, b, strict=False, out=None): ... |
|
|
| # internal wrapper functions for the functions below |
| def _convert2ma( |
| funcname: str, |
| np_ret: str, |
| np_ma_ret: str, |
| params: dict[str, Any] | None = None, |
| ) -> Callable[..., Any]: ... |
|
|
| # keep in sync with `_core.multiarray.arange` |
| @overload # dtype=<known> |
| def arange( |
| start_or_stop: _ArangeScalar | float, |
| /, |
| stop: _ArangeScalar | float | None = None, |
| step: _ArangeScalar | float | None = 1, |
| *, |
| dtype: _DTypeLike[_ArangeScalarT], |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _Masked1D[_ArangeScalarT]: ... |
| @overload # (int-like, int-like?, int-like?) |
| def arange( |
| start_or_stop: _IntLike_co, |
| /, |
| stop: _IntLike_co | None = None, |
| step: _IntLike_co | None = 1, |
| *, |
| dtype: type[int] | _DTypeLike[np.int_] | None = None, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _Masked1D[np.int_]: ... |
| @overload # (float, float-like?, float-like?) |
| def arange( |
| start_or_stop: float | floating, |
| /, |
| stop: _FloatLike_co | None = None, |
| step: _FloatLike_co | None = 1, |
| *, |
| dtype: type[float] | _DTypeLike[np.float64] | None = None, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _Masked1D[np.float64 | Any]: ... |
| @overload # (float-like, float, float-like?) |
| def arange( |
| start_or_stop: _FloatLike_co, |
| /, |
| stop: float | floating, |
| step: _FloatLike_co | None = 1, |
| *, |
| dtype: type[float] | _DTypeLike[np.float64] | None = None, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _Masked1D[np.float64 | Any]: ... |
| @overload # (timedelta, timedelta-like?, timedelta-like?) |
| def arange( |
| start_or_stop: np.timedelta64, |
| /, |
| stop: _TD64Like_co | None = None, |
| step: _TD64Like_co | None = 1, |
| *, |
| dtype: _DTypeLike[np.timedelta64] | None = None, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _Masked1D[np.timedelta64[Incomplete]]: ... |
| @overload # (timedelta-like, timedelta, timedelta-like?) |
| def arange( |
| start_or_stop: _TD64Like_co, |
| /, |
| stop: np.timedelta64, |
| step: _TD64Like_co | None = 1, |
| *, |
| dtype: _DTypeLike[np.timedelta64] | None = None, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _Masked1D[np.timedelta64[Incomplete]]: ... |
| @overload # (datetime, datetime, timedelta-like) (requires both start and stop) |
| def arange( |
| start_or_stop: np.datetime64, |
| /, |
| stop: np.datetime64, |
| step: _TD64Like_co | None = 1, |
| *, |
| dtype: _DTypeLike[np.datetime64] | None = None, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _Masked1D[np.datetime64[Incomplete]]: ... |
| @overload # (str, str, timedelta-like, dtype=dt64-like) (requires both start and stop) |
| def arange( |
| start_or_stop: str, |
| /, |
| stop: str, |
| step: _TD64Like_co | None = 1, |
| *, |
| dtype: _DTypeLike[np.datetime64] | _DT64Codes, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _Masked1D[np.datetime64[Incomplete]]: ... |
| @overload # dtype=<unknown> |
| def arange( |
| start_or_stop: _ArangeScalar | float | str, |
| /, |
| stop: _ArangeScalar | float | str | None = None, |
| step: _ArangeScalar | float | None = 1, |
| *, |
| dtype: DTypeLike | None = None, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _Masked1D[Incomplete]: ... |
|
|
| # based on `_core.fromnumeric.clip` |
| @overload |
| def clip( |
| a: _ScalarT, |
| a_min: ArrayLike | _NoValueType | None = ..., |
| a_max: ArrayLike | _NoValueType | None = ..., |
| out: None = None, |
| *, |
| min: ArrayLike | _NoValueType | None = ..., |
| max: ArrayLike | _NoValueType | None = ..., |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| dtype: None = None, |
| **kwargs: Unpack[_UFuncKwargs], |
| ) -> _ScalarT: ... |
| @overload |
| def clip( |
| a: NDArray[_ScalarT], |
| a_min: ArrayLike | _NoValueType | None = ..., |
| a_max: ArrayLike | _NoValueType | None = ..., |
| out: None = None, |
| *, |
| min: ArrayLike | _NoValueType | None = ..., |
| max: ArrayLike | _NoValueType | None = ..., |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| dtype: None = None, |
| **kwargs: Unpack[_UFuncKwargs], |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def clip( |
| a: ArrayLike, |
| a_min: ArrayLike | None, |
| a_max: ArrayLike | None, |
| out: _MArrayT, |
| *, |
| min: ArrayLike | _NoValueType | None = ..., |
| max: ArrayLike | _NoValueType | None = ..., |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| dtype: DTypeLike | None = None, |
| **kwargs: Unpack[_UFuncKwargs], |
| ) -> _MArrayT: ... |
| @overload |
| def clip( |
| a: ArrayLike, |
| a_min: ArrayLike | _NoValueType | None = ..., |
| a_max: ArrayLike | _NoValueType | None = ..., |
| *, |
| out: _MArrayT, |
| min: ArrayLike | _NoValueType | None = ..., |
| max: ArrayLike | _NoValueType | None = ..., |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| dtype: DTypeLike | None = None, |
| **kwargs: Unpack[_UFuncKwargs], |
| ) -> _MArrayT: ... |
| @overload |
| def clip( |
| a: ArrayLike, |
| a_min: ArrayLike | _NoValueType | None = ..., |
| a_max: ArrayLike | _NoValueType | None = ..., |
| out: None = None, |
| *, |
| min: ArrayLike | _NoValueType | None = ..., |
| max: ArrayLike | _NoValueType | None = ..., |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| dtype: DTypeLike | None = None, |
| **kwargs: Unpack[_UFuncKwargs], |
| ) -> Incomplete: ... |
|
|
| # keep in sync with `_core.multiarray.ones` |
| @overload |
| def empty( |
| shape: SupportsIndex, |
| dtype: None = None, |
| order: _OrderCF = "C", |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[tuple[int], np.dtype[np.float64]]: ... |
| @overload |
| def empty( |
| shape: SupportsIndex, |
| dtype: _DTypeT | _SupportsDType[_DTypeT], |
| order: _OrderCF = "C", |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[tuple[int], _DTypeT]: ... |
| @overload |
| def empty( |
| shape: SupportsIndex, |
| dtype: type[_ScalarT], |
| order: _OrderCF = "C", |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[tuple[int], np.dtype[_ScalarT]]: ... |
| @overload |
| def empty( |
| shape: SupportsIndex, |
| dtype: DTypeLike | None = None, |
| order: _OrderCF = "C", |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[tuple[int]]: ... |
| @overload # known shape |
| def empty( |
| shape: _AnyShapeT, |
| dtype: None = None, |
| order: _OrderCF = "C", |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[_AnyShapeT, np.dtype[np.float64]]: ... |
| @overload |
| def empty( |
| shape: _AnyShapeT, |
| dtype: _DTypeT | _SupportsDType[_DTypeT], |
| order: _OrderCF = "C", |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[_AnyShapeT, _DTypeT]: ... |
| @overload |
| def empty( |
| shape: _AnyShapeT, |
| dtype: type[_ScalarT], |
| order: _OrderCF = "C", |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[_AnyShapeT, np.dtype[_ScalarT]]: ... |
| @overload |
| def empty( |
| shape: _AnyShapeT, |
| dtype: DTypeLike | None = None, |
| order: _OrderCF = "C", |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[_AnyShapeT]: ... |
| @overload # unknown shape |
| def empty( |
| shape: _ShapeLike, |
| dtype: None = None, |
| order: _OrderCF = "C", |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _MaskedArray[np.float64]: ... |
| @overload |
| def empty( |
| shape: _ShapeLike, |
| dtype: _DTypeT | _SupportsDType[_DTypeT], |
| order: _OrderCF = "C", |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[_AnyShape, _DTypeT]: ... |
| @overload |
| def empty( |
| shape: _ShapeLike, |
| dtype: type[_ScalarT], |
| order: _OrderCF = "C", |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def empty( |
| shape: _ShapeLike, |
| dtype: DTypeLike | None = None, |
| *, |
| device: Literal["cpu"] | None = None, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray: ... |
|
|
| # keep in sync with `_core.multiarray.empty_like` |
| @overload |
| def empty_like( |
| a: _MArrayT, |
| /, |
| dtype: None = None, |
| order: _OrderKACF = "K", |
| subok: bool = True, |
| shape: _ShapeLike | None = None, |
| *, |
| device: Literal["cpu"] | None = None, |
| ) -> _MArrayT: ... |
| @overload |
| def empty_like( |
| a: _ArrayLike[_ScalarT], |
| /, |
| dtype: None = None, |
| order: _OrderKACF = "K", |
| subok: bool = True, |
| shape: _ShapeLike | None = None, |
| *, |
| device: Literal["cpu"] | None = None, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def empty_like( |
| a: Incomplete, |
| /, |
| dtype: _DTypeLike[_ScalarT], |
| order: _OrderKACF = "K", |
| subok: bool = True, |
| shape: _ShapeLike | None = None, |
| *, |
| device: Literal["cpu"] | None = None, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def empty_like( |
| a: Incomplete, |
| /, |
| dtype: DTypeLike | None = None, |
| order: _OrderKACF = "K", |
| subok: bool = True, |
| shape: _ShapeLike | None = None, |
| *, |
| device: Literal["cpu"] | None = None, |
| ) -> _MaskedArray[Incomplete]: ... |
|
|
| # This is a bit of a hack to avoid having to duplicate all those `empty` overloads for |
| # `ones` and `zeros`, that relies on the fact that empty/zeros/ones have identical |
| # type signatures, but may cause some type-checkers to report incorrect names in case |
| # of user errors. Mypy and Pyright seem to handle this just fine. |
| ones = empty |
| ones_like = empty_like |
| zeros = empty |
| zeros_like = empty_like |
|
|
| # keep in sync with `_core.multiarray.frombuffer` |
| @overload |
| def frombuffer( |
| buffer: Buffer, |
| *, |
| count: SupportsIndex = -1, |
| offset: SupportsIndex = 0, |
| like: _SupportsArrayFunc | None = None, |
| ) -> _MaskedArray[np.float64]: ... |
| @overload |
| def frombuffer( |
| buffer: Buffer, |
| dtype: _DTypeLike[_ScalarT], |
| count: SupportsIndex = -1, |
| offset: SupportsIndex = 0, |
| *, |
| like: _SupportsArrayFunc | None = None, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def frombuffer( |
| buffer: Buffer, |
| dtype: DTypeLike | None = float, |
| count: SupportsIndex = -1, |
| offset: SupportsIndex = 0, |
| *, |
| like: _SupportsArrayFunc | None = None, |
| ) -> _MaskedArray[Incomplete]: ... |
|
|
| # keep roughly in sync with `_core.numeric.fromfunction` |
| def fromfunction( |
| function: Callable[..., np.ndarray[_ShapeT, _DTypeT]], |
| shape: Sequence[int], |
| *, |
| dtype: DTypeLike | None = float, |
| like: _SupportsArrayFunc | None = None, |
| **kwargs: object, |
| ) -> MaskedArray[_ShapeT, _DTypeT]: ... |
|
|
| # keep roughly in sync with `_core.numeric.identity` |
| @overload |
| def identity( |
| n: int, |
| dtype: None = None, |
| *, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[tuple[int, int], np.dtype[np.float64]]: ... |
| @overload |
| def identity( |
| n: int, |
| dtype: _DTypeLike[_ScalarT], |
| *, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[tuple[int, int], np.dtype[_ScalarT]]: ... |
| @overload |
| def identity( |
| n: int, |
| dtype: DTypeLike | None = None, |
| *, |
| like: _SupportsArrayFunc | None = None, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> MaskedArray[tuple[int, int], np.dtype[Incomplete]]: ... |
|
|
| # keep roughly in sync with `_core.numeric.indices` |
| @overload |
| def indices( |
| dimensions: Sequence[int], |
| dtype: type[int] = int, |
| sparse: Literal[False] = False, |
| *, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _MaskedArray[np.intp]: ... |
| @overload |
| def indices( |
| dimensions: Sequence[int], |
| dtype: type[int], |
| sparse: Literal[True], |
| *, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> tuple[_MaskedArray[np.intp], ...]: ... |
| @overload |
| def indices( |
| dimensions: Sequence[int], |
| dtype: type[int] = int, |
| *, |
| sparse: Literal[True], |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> tuple[_MaskedArray[np.intp], ...]: ... |
| @overload |
| def indices( |
| dimensions: Sequence[int], |
| dtype: _DTypeLike[_ScalarT], |
| sparse: Literal[False] = False, |
| *, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def indices( |
| dimensions: Sequence[int], |
| dtype: _DTypeLike[_ScalarT], |
| sparse: Literal[True], |
| *, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> tuple[_MaskedArray[_ScalarT], ...]: ... |
| @overload |
| def indices( |
| dimensions: Sequence[int], |
| dtype: DTypeLike | None = int, |
| sparse: Literal[False] = False, |
| *, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _MaskedArray[Incomplete]: ... |
| @overload |
| def indices( |
| dimensions: Sequence[int], |
| dtype: DTypeLike | None, |
| sparse: Literal[True], |
| *, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> tuple[_MaskedArray[Incomplete], ...]: ... |
| @overload |
| def indices( |
| dimensions: Sequence[int], |
| dtype: DTypeLike | None = int, |
| *, |
| sparse: Literal[True], |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> tuple[_MaskedArray[Incomplete], ...]: ... |
|
|
| # keep roughly in sync with `_core.fromnumeric.squeeze` |
| @overload |
| def squeeze( |
| a: _ArrayLike[_ScalarT], |
| axis: _ShapeLike | None = None, |
| *, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _MaskedArray[_ScalarT]: ... |
| @overload |
| def squeeze( |
| a: ArrayLike, |
| axis: _ShapeLike | None = None, |
| *, |
| fill_value: _FillValue | None = None, |
| hardmask: bool = False, |
| ) -> _MaskedArray[Incomplete]: ... |
|
|