extras.pyi 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. from _typeshed import Incomplete
  2. from collections.abc import Sequence
  3. from typing import SupportsIndex, TypeAlias, TypeVar, overload
  4. import numpy as np
  5. from numpy import _CastingKind
  6. from numpy._typing import (
  7. ArrayLike,
  8. DTypeLike,
  9. _AnyShape,
  10. _ArrayLike,
  11. _DTypeLike,
  12. _ShapeLike,
  13. )
  14. from numpy.lib._function_base_impl import average
  15. from numpy.lib._index_tricks_impl import AxisConcatenator
  16. from .core import MaskedArray, dot
  17. __all__ = [
  18. "apply_along_axis",
  19. "apply_over_axes",
  20. "atleast_1d",
  21. "atleast_2d",
  22. "atleast_3d",
  23. "average",
  24. "clump_masked",
  25. "clump_unmasked",
  26. "column_stack",
  27. "compress_cols",
  28. "compress_nd",
  29. "compress_rowcols",
  30. "compress_rows",
  31. "corrcoef",
  32. "count_masked",
  33. "cov",
  34. "diagflat",
  35. "dot",
  36. "dstack",
  37. "ediff1d",
  38. "flatnotmasked_contiguous",
  39. "flatnotmasked_edges",
  40. "hsplit",
  41. "hstack",
  42. "in1d",
  43. "intersect1d",
  44. "isin",
  45. "mask_cols",
  46. "mask_rowcols",
  47. "mask_rows",
  48. "masked_all",
  49. "masked_all_like",
  50. "median",
  51. "mr_",
  52. "ndenumerate",
  53. "notmasked_contiguous",
  54. "notmasked_edges",
  55. "polyfit",
  56. "row_stack",
  57. "setdiff1d",
  58. "setxor1d",
  59. "stack",
  60. "union1d",
  61. "unique",
  62. "vander",
  63. "vstack",
  64. ]
  65. _ScalarT = TypeVar("_ScalarT", bound=np.generic)
  66. _ScalarT1 = TypeVar("_ScalarT1", bound=np.generic)
  67. _ScalarT2 = TypeVar("_ScalarT2", bound=np.generic)
  68. _MArrayT = TypeVar("_MArrayT", bound=MaskedArray)
  69. _MArray: TypeAlias = MaskedArray[_AnyShape, np.dtype[_ScalarT]]
  70. ###
  71. # keep in sync with `numpy._core.shape_base.atleast_1d`
  72. @overload
  73. def atleast_1d(a0: _ArrayLike[_ScalarT], /) -> _MArray[_ScalarT]: ...
  74. @overload
  75. def atleast_1d(a0: _ArrayLike[_ScalarT1], a1: _ArrayLike[_ScalarT2], /) -> tuple[_MArray[_ScalarT1], _MArray[_ScalarT2]]: ...
  76. @overload
  77. def atleast_1d(
  78. a0: _ArrayLike[_ScalarT], a1: _ArrayLike[_ScalarT], /, *arys: _ArrayLike[_ScalarT]
  79. ) -> tuple[_MArray[_ScalarT], ...]: ...
  80. @overload
  81. def atleast_1d(a0: ArrayLike, /) -> _MArray[Incomplete]: ...
  82. @overload
  83. def atleast_1d(a0: ArrayLike, a1: ArrayLike, /) -> tuple[_MArray[Incomplete], _MArray[Incomplete]]: ...
  84. @overload
  85. def atleast_1d(a0: ArrayLike, a1: ArrayLike, /, *ai: ArrayLike) -> tuple[_MArray[Incomplete], ...]: ...
  86. # keep in sync with `numpy._core.shape_base.atleast_2d`
  87. @overload
  88. def atleast_2d(a0: _ArrayLike[_ScalarT], /) -> _MArray[_ScalarT]: ...
  89. @overload
  90. def atleast_2d(a0: _ArrayLike[_ScalarT1], a1: _ArrayLike[_ScalarT2], /) -> tuple[_MArray[_ScalarT1], _MArray[_ScalarT2]]: ...
  91. @overload
  92. def atleast_2d(
  93. a0: _ArrayLike[_ScalarT], a1: _ArrayLike[_ScalarT], /, *arys: _ArrayLike[_ScalarT]
  94. ) -> tuple[_MArray[_ScalarT], ...]: ...
  95. @overload
  96. def atleast_2d(a0: ArrayLike, /) -> _MArray[Incomplete]: ...
  97. @overload
  98. def atleast_2d(a0: ArrayLike, a1: ArrayLike, /) -> tuple[_MArray[Incomplete], _MArray[Incomplete]]: ...
  99. @overload
  100. def atleast_2d(a0: ArrayLike, a1: ArrayLike, /, *ai: ArrayLike) -> tuple[_MArray[Incomplete], ...]: ...
  101. # keep in sync with `numpy._core.shape_base.atleast_2d`
  102. @overload
  103. def atleast_3d(a0: _ArrayLike[_ScalarT], /) -> _MArray[_ScalarT]: ...
  104. @overload
  105. def atleast_3d(a0: _ArrayLike[_ScalarT1], a1: _ArrayLike[_ScalarT2], /) -> tuple[_MArray[_ScalarT1], _MArray[_ScalarT2]]: ...
  106. @overload
  107. def atleast_3d(
  108. a0: _ArrayLike[_ScalarT], a1: _ArrayLike[_ScalarT], /, *arys: _ArrayLike[_ScalarT]
  109. ) -> tuple[_MArray[_ScalarT], ...]: ...
  110. @overload
  111. def atleast_3d(a0: ArrayLike, /) -> _MArray[Incomplete]: ...
  112. @overload
  113. def atleast_3d(a0: ArrayLike, a1: ArrayLike, /) -> tuple[_MArray[Incomplete], _MArray[Incomplete]]: ...
  114. @overload
  115. def atleast_3d(a0: ArrayLike, a1: ArrayLike, /, *ai: ArrayLike) -> tuple[_MArray[Incomplete], ...]: ...
  116. # keep in sync with `numpy._core.shape_base.vstack`
  117. @overload
  118. def vstack(
  119. tup: Sequence[_ArrayLike[_ScalarT]],
  120. *,
  121. dtype: None = None,
  122. casting: _CastingKind = "same_kind"
  123. ) -> _MArray[_ScalarT]: ...
  124. @overload
  125. def vstack(
  126. tup: Sequence[ArrayLike],
  127. *,
  128. dtype: _DTypeLike[_ScalarT],
  129. casting: _CastingKind = "same_kind"
  130. ) -> _MArray[_ScalarT]: ...
  131. @overload
  132. def vstack(
  133. tup: Sequence[ArrayLike],
  134. *,
  135. dtype: DTypeLike | None = None,
  136. casting: _CastingKind = "same_kind"
  137. ) -> _MArray[Incomplete]: ...
  138. row_stack = vstack
  139. # keep in sync with `numpy._core.shape_base.hstack`
  140. @overload
  141. def hstack(
  142. tup: Sequence[_ArrayLike[_ScalarT]],
  143. *,
  144. dtype: None = None,
  145. casting: _CastingKind = "same_kind"
  146. ) -> _MArray[_ScalarT]: ...
  147. @overload
  148. def hstack(
  149. tup: Sequence[ArrayLike],
  150. *,
  151. dtype: _DTypeLike[_ScalarT],
  152. casting: _CastingKind = "same_kind"
  153. ) -> _MArray[_ScalarT]: ...
  154. @overload
  155. def hstack(
  156. tup: Sequence[ArrayLike],
  157. *,
  158. dtype: DTypeLike | None = None,
  159. casting: _CastingKind = "same_kind"
  160. ) -> _MArray[Incomplete]: ...
  161. # keep in sync with `numpy._core.shape_base_impl.column_stack`
  162. @overload
  163. def column_stack(tup: Sequence[_ArrayLike[_ScalarT]]) -> _MArray[_ScalarT]: ...
  164. @overload
  165. def column_stack(tup: Sequence[ArrayLike]) -> _MArray[Incomplete]: ...
  166. # keep in sync with `numpy._core.shape_base_impl.dstack`
  167. @overload
  168. def dstack(tup: Sequence[_ArrayLike[_ScalarT]]) -> _MArray[_ScalarT]: ...
  169. @overload
  170. def dstack(tup: Sequence[ArrayLike]) -> _MArray[Incomplete]: ...
  171. # keep in sync with `numpy._core.shape_base.stack`
  172. @overload
  173. def stack(
  174. arrays: Sequence[_ArrayLike[_ScalarT]],
  175. axis: SupportsIndex = 0,
  176. out: None = None,
  177. *,
  178. dtype: None = None,
  179. casting: _CastingKind = "same_kind"
  180. ) -> _MArray[_ScalarT]: ...
  181. @overload
  182. def stack(
  183. arrays: Sequence[ArrayLike],
  184. axis: SupportsIndex = 0,
  185. out: None = None,
  186. *,
  187. dtype: _DTypeLike[_ScalarT],
  188. casting: _CastingKind = "same_kind"
  189. ) -> _MArray[_ScalarT]: ...
  190. @overload
  191. def stack(
  192. arrays: Sequence[ArrayLike],
  193. axis: SupportsIndex = 0,
  194. out: None = None,
  195. *,
  196. dtype: DTypeLike | None = None,
  197. casting: _CastingKind = "same_kind"
  198. ) -> _MArray[Incomplete]: ...
  199. @overload
  200. def stack(
  201. arrays: Sequence[ArrayLike],
  202. axis: SupportsIndex,
  203. out: _MArrayT,
  204. *,
  205. dtype: DTypeLike | None = None,
  206. casting: _CastingKind = "same_kind",
  207. ) -> _MArrayT: ...
  208. @overload
  209. def stack(
  210. arrays: Sequence[ArrayLike],
  211. axis: SupportsIndex = 0,
  212. *,
  213. out: _MArrayT,
  214. dtype: DTypeLike | None = None,
  215. casting: _CastingKind = "same_kind",
  216. ) -> _MArrayT: ...
  217. # keep in sync with `numpy._core.shape_base_impl.hsplit`
  218. @overload
  219. def hsplit(ary: _ArrayLike[_ScalarT], indices_or_sections: _ShapeLike) -> list[_MArray[_ScalarT]]: ...
  220. @overload
  221. def hsplit(ary: ArrayLike, indices_or_sections: _ShapeLike) -> list[_MArray[Incomplete]]: ...
  222. # keep in sync with `numpy._core.twodim_base_impl.hsplit`
  223. @overload
  224. def diagflat(v: _ArrayLike[_ScalarT], k: int = 0) -> _MArray[_ScalarT]: ...
  225. @overload
  226. def diagflat(v: ArrayLike, k: int = 0) -> _MArray[Incomplete]: ...
  227. # TODO: everything below
  228. def count_masked(arr, axis=None): ...
  229. def masked_all(shape, dtype=float): ... # noqa: PYI014
  230. def masked_all_like(arr): ...
  231. def apply_along_axis(func1d, axis, arr, *args, **kwargs): ...
  232. def apply_over_axes(func, a, axes): ...
  233. def median(a, axis=None, out=None, overwrite_input=False, keepdims=False): ...
  234. def compress_nd(x, axis=None): ...
  235. def compress_rowcols(x, axis=None): ...
  236. def compress_rows(a): ...
  237. def compress_cols(a): ...
  238. def mask_rows(a, axis=...): ...
  239. def mask_cols(a, axis=...): ...
  240. def ediff1d(arr, to_end=None, to_begin=None): ...
  241. def unique(ar1, return_index=False, return_inverse=False): ...
  242. def intersect1d(ar1, ar2, assume_unique=False): ...
  243. def setxor1d(ar1, ar2, assume_unique=False): ...
  244. def in1d(ar1, ar2, assume_unique=False, invert=False): ...
  245. def isin(element, test_elements, assume_unique=False, invert=False): ...
  246. def union1d(ar1, ar2): ...
  247. def setdiff1d(ar1, ar2, assume_unique=False): ...
  248. def cov(x, y=None, rowvar=True, bias=False, allow_masked=True, ddof=None): ...
  249. def corrcoef(x, y=None, rowvar=True, allow_masked=True): ...
  250. class MAxisConcatenator(AxisConcatenator):
  251. __slots__ = ()
  252. @staticmethod
  253. def concatenate(arrays: Incomplete, axis: int = 0) -> Incomplete: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
  254. @classmethod
  255. def makemat(cls, arr: Incomplete) -> Incomplete: ... # type: ignore[override] # pyright: ignore[reportIncompatibleVariableOverride]
  256. class mr_class(MAxisConcatenator):
  257. __slots__ = ()
  258. def __init__(self) -> None: ...
  259. mr_: mr_class
  260. def ndenumerate(a, compressed=True): ...
  261. def flatnotmasked_edges(a): ...
  262. def notmasked_edges(a, axis=None): ...
  263. def flatnotmasked_contiguous(a): ...
  264. def notmasked_contiguous(a, axis=None): ...
  265. def clump_unmasked(a): ...
  266. def clump_masked(a): ...
  267. def vander(x, n=None): ...
  268. def polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False): ...
  269. #
  270. def mask_rowcols(a: Incomplete, axis: Incomplete | None = None) -> MaskedArray[Incomplete, np.dtype[Incomplete]]: ...