import sys
from typing import (
Any,
Optional,
Union,
Sequence,
Tuple,
Callable,
List,
overload,
TypeVar,
Iterable,
)
from numpy import ndarray, generic, dtype, bool_, signedinteger, _OrderKACF, _OrderCF
from numpy.typing import ArrayLike, DTypeLike, _ShapeLike
if sys.version_info >= (3, 8):
from typing import Literal
else:
from typing_extensions import Literal
_T = TypeVar("_T")
_ArrayType = TypeVar("_ArrayType", bound=ndarray)
_CorrelateMode = Literal["valid", "same", "full"]
@overload
def zeros_like(
a: _ArrayType,
dtype: None = ...,
order: _OrderKACF = ...,
subok: Literal[True] = ...,
shape: None = ...,
) -> _ArrayType: ...
@overload
def zeros_like(
a: ArrayLike,
dtype: DTypeLike = ...,
order: _OrderKACF = ...,
subok: bool = ...,
shape: Optional[_ShapeLike] = ...,
) -> ndarray: ...
def ones(
shape: _ShapeLike,
dtype: DTypeLike = ...,
order: _OrderCF = ...,
*,
like: ArrayLike = ...,
) -> ndarray: ...
@overload
def ones_like(
a: _ArrayType,
dtype: None = ...,
order: _OrderKACF = ...,
subok: Literal[True] = ...,
shape: None = ...,
) -> _ArrayType: ...
@overload
def ones_like(
a: ArrayLike,
dtype: DTypeLike = ...,
order: _OrderKACF = ...,
subok: bool = ...,
shape: Optional[_ShapeLike] = ...,
) -> ndarray: ...
@overload
def empty_like(
a: _ArrayType,
dtype: None = ...,
order: _OrderKACF = ...,
subok: Literal[True] = ...,
shape: None = ...,
) -> _ArrayType: ...
@overload
def empty_like(
a: ArrayLike,
dtype: DTypeLike = ...,
order: _OrderKACF = ...,
subok: bool = ...,
shape: Optional[_ShapeLike] = ...,
) -> ndarray: ...
def full(
shape: _ShapeLike,
fill_value: Any,
dtype: DTypeLike = ...,
order: _OrderCF = ...,
*,
like: ArrayLike = ...,
) -> ndarray: ...
@overload
def full_like(
a: _ArrayType,
fill_value: Any,
dtype: None = ...,
order: _OrderKACF = ...,
subok: Literal[True] = ...,
shape: None = ...,
) -> _ArrayType: ...
@overload
def full_like(
a: ArrayLike,
fill_value: Any,
dtype: DTypeLike = ...,
order: _OrderKACF = ...,
subok: bool = ...,
shape: Optional[_ShapeLike] = ...,
) -> ndarray: ...
@overload
def count_nonzero(
a: ArrayLike,
axis: None = ...,
*,
keepdims: Literal[False] = ...,
) -> int: ...
@overload
def count_nonzero(
a: ArrayLike,
axis: _ShapeLike = ...,
*,
keepdims: bool = ...,
) -> Any: ... # TODO: np.intp or ndarray[np.intp]
def isfortran(a: Union[ndarray, generic]) -> bool: ...
def argwhere(a: ArrayLike) -> ndarray: ...
def flatnonzero(a: ArrayLike) -> ndarray: ...
def correlate(
a: ArrayLike,
v: ArrayLike,
mode: _CorrelateMode = ...,
) -> ndarray: ...
def convolve(
a: ArrayLike,
v: ArrayLike,
mode: _CorrelateMode = ...,
) -> ndarray: ...
@overload
def outer(
a: ArrayLike,
b: ArrayLike,
out: None = ...,
) -> ndarray: ...
@overload
def outer(
a: ArrayLike,
b: ArrayLike,
out: _ArrayType = ...,
) -> _ArrayType: ...
def tensordot(
a: ArrayLike,
b: ArrayLike,
axes: Union[int, Tuple[_ShapeLike, _ShapeLike]] = ...,
) -> ndarray: ...
def roll(
a: ArrayLike,
shift: _ShapeLike,
axis: Optional[_ShapeLike] = ...,
) -> ndarray: ...
def rollaxis(a: ndarray, axis: int, start: int = ...) -> ndarray: ...
def moveaxis(
a: ndarray,
source: _ShapeLike,
destination: _ShapeLike,
) -> ndarray: ...
def cross(
a: ArrayLike,
b: ArrayLike,
axisa: int = ...,
axisb: int = ...,
axisc: int = ...,
axis: Optional[int] = ...,
) -> ndarray: ...
@overload
def indices(
dimensions: Sequence[int],
dtype: DTypeLike = ...,
sparse: Literal[False] = ...,
) -> ndarray: ...
@overload
def indices(
dimensions: Sequence[int],
dtype: DTypeLike = ...,
sparse: Literal[True] = ...,
) -> Tuple[ndarray, ...]: ...
def fromfunction(
function: Callable[..., _T],
shape: Sequence[int],
*,
dtype: DTypeLike = ...,
like: ArrayLike = ...,
**kwargs: Any,
) -> _T: ...
def isscalar(element: Any) -> bool: ...
def binary_repr(num: int, width: Optional[int] = ...) -> str: ...
def base_repr(number: int, base: int = ..., padding: int = ...) -> str: ...
def identity(
n: int,
dtype: DTypeLike = ...,
*,
like: ArrayLike = ...,
) -> ndarray: ...
def allclose(
a: ArrayLike,
b: ArrayLike,
rtol: float = ...,
atol: float = ...,
equal_nan: bool = ...,
) -> bool: ...
def isclose(
a: ArrayLike,
b: ArrayLike,
rtol: float = ...,
atol: float = ...,
equal_nan: bool = ...,
) -> Any: ...
def array_equal(a1: ArrayLike, a2: ArrayLike, equal_nan: bool = ...) -> bool: ...
def array_equiv(a1: ArrayLike, a2: ArrayLike) -> bool: ...