Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
_function_base_impl.pyi2325 linesDownload Raw Back to lib
1from _typeshed import ConvertibleToInt, Incomplete
2from collections.abc import Callable, Iterable, Sequence
3from typing import (
4    Any,
5    Concatenate,
6    Literal as L,
7    Never,
8    ParamSpec,
9    Protocol,
10    SupportsIndex,
11    SupportsInt,
12    TypeAlias,
13    overload,
14    type_check_only,
15)
16from typing_extensions import TypeIs, TypeVar
17
18import numpy as np
19from numpy import _OrderKACF
20from numpy._core.multiarray import bincount
21from numpy._globals import _NoValueType
22from numpy._typing import (
23    ArrayLike,
24    DTypeLike,
25    NDArray,
26    _ArrayLike,
27    _ArrayLikeBool_co,
28    _ArrayLikeComplex_co,
29    _ArrayLikeFloat_co,
30    _ArrayLikeInt_co,
31    _ArrayLikeNumber_co,
32    _ArrayLikeObject_co,
33    _ComplexLike_co,
34    _DTypeLike,
35    _FloatLike_co,
36    _NestedSequence as _SeqND,
37    _NumberLike_co,
38    _ScalarLike_co,
39    _ShapeLike,
40    _SupportsArray,
41)
42
43__all__ = [
44    "select",
45    "piecewise",
46    "trim_zeros",
47    "copy",
48    "iterable",
49    "percentile",
50    "diff",
51    "gradient",
52    "angle",
53    "unwrap",
54    "sort_complex",
55    "flip",
56    "rot90",
57    "extract",
58    "place",
59    "vectorize",
60    "asarray_chkfinite",
61    "average",
62    "bincount",
63    "digitize",
64    "cov",
65    "corrcoef",
66    "median",
67    "sinc",
68    "hamming",
69    "hanning",
70    "bartlett",
71    "blackman",
72    "kaiser",
73    "trapezoid",
74    "i0",
75    "meshgrid",
76    "delete",
77    "insert",
78    "append",
79    "interp",
80    "quantile",
81]
82
83_T = TypeVar("_T")
84_T_co = TypeVar("_T_co", covariant=True)
85# The `{}ss` suffix refers to the PEP 695 (Python 3.12) `ParamSpec` syntax, `**P`.
86_Tss = ParamSpec("_Tss")
87
88_ScalarT = TypeVar("_ScalarT", bound=np.generic)
89_ScalarT1 = TypeVar("_ScalarT1", bound=np.generic)
90_ScalarT2 = TypeVar("_ScalarT2", bound=np.generic)
91_FloatingT = TypeVar("_FloatingT", bound=np.floating)
92_InexactT = TypeVar("_InexactT", bound=np.inexact)
93_InexactTimeT = TypeVar("_InexactTimeT", bound=np.inexact | np.timedelta64)
94_InexactDateTimeT = TypeVar("_InexactDateTimeT", bound=np.inexact | np.timedelta64 | np.datetime64)
95_ScalarNumericT = TypeVar("_ScalarNumericT", bound=np.inexact | np.timedelta64 | np.object_)
96_AnyDoubleT = TypeVar("_AnyDoubleT", bound=np.float64 | np.longdouble | np.complex128 | np.clongdouble)
97
98_ArrayT = TypeVar("_ArrayT", bound=np.ndarray)
99_ArrayFloatingT = TypeVar("_ArrayFloatingT", bound=NDArray[np.floating])
100_ArrayFloatObjT = TypeVar("_ArrayFloatObjT", bound=NDArray[np.floating | np.object_])
101_ArrayComplexT = TypeVar("_ArrayComplexT", bound=NDArray[np.complexfloating])
102_ArrayInexactT = TypeVar("_ArrayInexactT", bound=NDArray[np.inexact])
103_ArrayNumericT = TypeVar("_ArrayNumericT", bound=NDArray[np.inexact | np.timedelta64 | np.object_])
104
105_ArrayLike1D: TypeAlias = _SupportsArray[np.dtype[_ScalarT]] | Sequence[_ScalarT]
106
107_ShapeT = TypeVar("_ShapeT", bound=tuple[int, ...])
108
109_integer_co: TypeAlias = np.integer | np.bool
110_float64_co: TypeAlias = np.float64 | _integer_co
111_floating_co: TypeAlias = np.floating | _integer_co
112
113# non-trivial scalar-types that will become `complex128` in `sort_complex()`,
114# i.e. all numeric scalar types except for `[u]int{8,16} | longdouble`
115_SortsToComplex128: TypeAlias = (
116    np.bool
117    | np.int32
118    | np.uint32
119    | np.int64
120    | np.uint64
121    | np.float16
122    | np.float32
123    | np.float64
124    | np.timedelta64
125    | np.object_
126)
127
128_Array: TypeAlias = np.ndarray[_ShapeT, np.dtype[_ScalarT]]
129_Array0D: TypeAlias = np.ndarray[tuple[()], np.dtype[_ScalarT]]
130_Array1D: TypeAlias = np.ndarray[tuple[int], np.dtype[_ScalarT]]
131_Array2D: TypeAlias = np.ndarray[tuple[int, int], np.dtype[_ScalarT]]
132_Array3D: TypeAlias = np.ndarray[tuple[int, int, int], np.dtype[_ScalarT]]
133_ArrayMax2D: TypeAlias = np.ndarray[tuple[int] | tuple[int, int], np.dtype[_ScalarT]]
134# workaround for mypy and pyright not following the typing spec for overloads
135_ArrayNoD: TypeAlias = np.ndarray[tuple[Never, Never, Never, Never], np.dtype[_ScalarT]]
136
137_Seq1D: TypeAlias = Sequence[_T]
138_Seq2D: TypeAlias = Sequence[Sequence[_T]]
139_Seq3D: TypeAlias = Sequence[Sequence[Sequence[_T]]]
140_ListSeqND: TypeAlias = list[_T] | _SeqND[list[_T]]
141
142_Tuple2: TypeAlias = tuple[_T, _T]
143_Tuple3: TypeAlias = tuple[_T, _T, _T]
144_Tuple4: TypeAlias = tuple[_T, _T, _T, _T]
145
146_Mesh1: TypeAlias = tuple[_Array1D[_ScalarT]]
147_Mesh2: TypeAlias = tuple[_Array2D[_ScalarT], _Array2D[_ScalarT1]]
148_Mesh3: TypeAlias = tuple[_Array3D[_ScalarT], _Array3D[_ScalarT1], _Array3D[_ScalarT2]]
149
150_IndexLike: TypeAlias = slice | _ArrayLikeInt_co
151
152_Indexing: TypeAlias = L["ij", "xy"]
153_InterpolationMethod = L[
154    "inverted_cdf",
155    "averaged_inverted_cdf",
156    "closest_observation",
157    "interpolated_inverted_cdf",
158    "hazen",
159    "weibull",
160    "linear",
161    "median_unbiased",
162    "normal_unbiased",
163    "lower",
164    "higher",
165    "midpoint",
166    "nearest",
167]
168
169# The resulting value will be used as `y[cond] = func(vals, *args, **kw)`, so in can
170# return any (usually 1d) array-like or scalar-like compatible with the input.
171_PiecewiseFunction: TypeAlias = Callable[Concatenate[NDArray[_ScalarT], _Tss], ArrayLike]
172_PiecewiseFunctions: TypeAlias = _SizedIterable[_PiecewiseFunction[_ScalarT, _Tss] | _ScalarLike_co]
173
174@type_check_only
175class _TrimZerosSequence(Protocol[_T_co]):
176    def __len__(self, /) -> int: ...
177    @overload
178    def __getitem__(self, key: int, /) -> object: ...
179    @overload
180    def __getitem__(self, key: slice, /) -> _T_co: ...
181
182@type_check_only
183class _SupportsRMulFloat(Protocol[_T_co]):
184    def __rmul__(self, other: float, /) -> _T_co: ...
185
186@type_check_only
187class _SizedIterable(Protocol[_T_co]):
188    def __iter__(self) -> Iterable[_T_co]: ...
189    def __len__(self) -> int: ...
190
191###
192
193class vectorize:
194    __doc__: str | None
195    __module__: L["numpy"] = "numpy"
196    pyfunc: Callable[..., Incomplete]
197    cache: bool
198    signature: str | None
199    otypes: str | None
200    excluded: set[int | str]
201
202    def __init__(
203        self,
204        /,
205        pyfunc: Callable[..., Incomplete] | _NoValueType = ...,  # = _NoValue
206        otypes: str | Iterable[DTypeLike] | None = None,
207        doc: str | None = None,
208        excluded: Iterable[int | str] | None = None,
209        cache: bool = False,
210        signature: str | None = None,
211    ) -> None: ...
212    def __call__(self, /, *args: Incomplete, **kwargs: Incomplete) -> Incomplete: ...
213
214@overload
215def rot90(m: _ArrayT, k: int = 1, axes: tuple[int, int] = (0, 1)) -> _ArrayT: ...
216@overload
217def rot90(m: _ArrayLike[_ScalarT], k: int = 1, axes: tuple[int, int] = (0, 1)) -> NDArray[_ScalarT]: ...
218@overload
219def rot90(m: ArrayLike, k: int = 1, axes: tuple[int, int] = (0, 1)) -> NDArray[Incomplete]: ...
220
221# NOTE: Technically `flip` also accept scalars, but that has no effect and complicates
222# the overloads significantly, so we ignore that case here.
223@overload
224def flip(m: _ArrayT, axis: int | tuple[int, ...] | None = None) -> _ArrayT: ...
225@overload
226def flip(m: _ArrayLike[_ScalarT], axis: int | tuple[int, ...] | None = None) -> NDArray[_ScalarT]: ...
227@overload
228def flip(m: ArrayLike, axis: int | tuple[int, ...] | None = None) -> NDArray[Incomplete]: ...
229
230#
231def iterable(y: object) -> TypeIs[Iterable[Any]]: ...
232
233# NOTE: This assumes that if `axis` is given the input is at least 2d, and will
234# therefore always return an array.
235# NOTE: This assumes that if `keepdims=True` the input is at least 1d, and will
236# therefore always return an array.
237@overload  # inexact array, keepdims=True
238def average(
239    a: _ArrayInexactT,
240    axis: int | tuple[int, ...] | None = None,
241    weights: _ArrayLikeNumber_co | None = None,
242    returned: L[False] = False,
243    *,
244    keepdims: L[True],
245) -> _ArrayInexactT: ...
246@overload  # inexact array, returned=True keepdims=True
247def average(
248    a: _ArrayInexactT,
249    axis: int | tuple[int, ...] | None = None,
250    weights: _ArrayLikeNumber_co | None = None,
251    *,
252    returned: L[True],
253    keepdims: L[True],
254) -> _Tuple2[_ArrayInexactT]: ...
255@overload  # inexact array-like, axis=None
256def average(
257    a: _ArrayLike[_InexactT],
258    axis: None = None,
259    weights: _ArrayLikeNumber_co | None = None,
260    returned: L[False] = False,
261    *,
262    keepdims: L[False] | _NoValueType = ...,
263) -> _InexactT: ...
264@overload  # inexact array-like, axis=<given>
265def average(
266    a: _ArrayLike[_InexactT],
267    axis: int | tuple[int, ...],
268    weights: _ArrayLikeNumber_co | None = None,
269    returned: L[False] = False,
270    *,
271    keepdims: L[False] | _NoValueType = ...,
272) -> NDArray[_InexactT]: ...
273@overload  # inexact array-like, keepdims=True
274def average(
275    a: _ArrayLike[_InexactT],
276    axis: int | tuple[int, ...] | None = None,
277    weights: _ArrayLikeNumber_co | None = None,
278    returned: L[False] = False,
279    *,
280    keepdims: L[True],
281) -> NDArray[_InexactT]: ...
282@overload  # inexact array-like, axis=None, returned=True
283def average(
284    a: _ArrayLike[_InexactT],
285    axis: None = None,
286    weights: _ArrayLikeNumber_co | None = None,
287    *,
288    returned: L[True],
289    keepdims: L[False] | _NoValueType = ...,
290) -> _Tuple2[_InexactT]: ...
291@overload  # inexact array-like, axis=<given>, returned=True
292def average(
293    a: _ArrayLike[_InexactT],
294    axis: int | tuple[int, ...],
295    weights: _ArrayLikeNumber_co | None = None,
296    *,
297    returned: L[True],
298    keepdims: L[False] | _NoValueType = ...,
299) -> _Tuple2[NDArray[_InexactT]]: ...
300@overload  # inexact array-like, returned=True, keepdims=True
301def average(
302    a: _ArrayLike[_InexactT],
303    axis: int | tuple[int, ...] | None = None,
304    weights: _ArrayLikeNumber_co | None = None,
305    *,
306    returned: L[True],
307    keepdims: L[True],
308) -> _Tuple2[NDArray[_InexactT]]: ...
309@overload  # bool or integer array-like, axis=None
310def average(
311    a: _SeqND[float] | _ArrayLikeInt_co,
312    axis: None = None,
313    weights: _ArrayLikeFloat_co | None = None,
314    returned: L[False] = False,
315    *,
316    keepdims: L[False] | _NoValueType = ...,
317) -> np.float64: ...
318@overload  # bool or integer array-like, axis=<given>
319def average(
320    a: _SeqND[float] | _ArrayLikeInt_co,
321    axis: int | tuple[int, ...],
322    weights: _ArrayLikeFloat_co | None = None,
323    returned: L[False] = False,
324    *,
325    keepdims: L[False] | _NoValueType = ...,
326) -> NDArray[np.float64]: ...
327@overload  # bool or integer array-like, keepdims=True
328def average(
329    a: _SeqND[float] | _ArrayLikeInt_co,
330    axis: int | tuple[int, ...] | None = None,
331    weights: _ArrayLikeFloat_co | None = None,
332    returned: L[False] = False,
333    *,
334    keepdims: L[True],
335) -> NDArray[np.float64]: ...
336@overload  # bool or integer array-like, axis=None, returned=True
337def average(
338    a: _SeqND[float] | _ArrayLikeInt_co,
339    axis: None = None,
340    weights: _ArrayLikeFloat_co | None = None,
341    *,
342    returned: L[True],
343    keepdims: L[False] | _NoValueType = ...,
344) -> _Tuple2[np.float64]: ...
345@overload  # bool or integer array-like, axis=<given>, returned=True
346def average(
347    a: _SeqND[float] | _ArrayLikeInt_co,
348    axis: int | tuple[int, ...],
349    weights: _ArrayLikeFloat_co | None = None,
350    *,
351    returned: L[True],
352    keepdims: L[False] | _NoValueType = ...,
353) -> _Tuple2[NDArray[np.float64]]: ...
354@overload  # bool or integer array-like, returned=True, keepdims=True
355def average(
356    a: _SeqND[float] | _ArrayLikeInt_co,
357    axis: int | tuple[int, ...] | None = None,
358    weights: _ArrayLikeFloat_co | None = None,
359    *,
360    returned: L[True],
361    keepdims: L[True],
362) -> _Tuple2[NDArray[np.float64]]: ...
363@overload  # complex array-like, axis=None
364def average(
365    a: _ListSeqND[complex],
366    axis: None = None,
367    weights: _ArrayLikeComplex_co | None = None,
368    returned: L[False] = False,
369    *,
370    keepdims: L[False] | _NoValueType = ...,
371) -> np.complex128: ...
372@overload  # complex array-like, axis=<given>
373def average(
374    a: _ListSeqND[complex],
375    axis: int | tuple[int, ...],
376    weights: _ArrayLikeComplex_co | None = None,
377    returned: L[False] = False,
378    *,
379    keepdims: L[False] | _NoValueType = ...,
380) -> NDArray[np.complex128]: ...
381@overload  # complex array-like, keepdims=True
382def average(
383    a: _ListSeqND[complex],
384    axis: int | tuple[int, ...] | None = None,
385    weights: _ArrayLikeComplex_co | None = None,
386    returned: L[False] = False,
387    *,
388    keepdims: L[True],
389) -> NDArray[np.complex128]: ...
390@overload  # complex array-like, axis=None, returned=True
391def average(
392    a: _ListSeqND[complex],
393    axis: None = None,
394    weights: _ArrayLikeComplex_co | None = None,
395    *,
396    returned: L[True],
397    keepdims: L[False] | _NoValueType = ...,
398) -> _Tuple2[np.complex128]: ...
399@overload  # complex array-like, axis=<given>, returned=True
400def average(
401    a: _ListSeqND[complex],
402    axis: int | tuple[int, ...],
403    weights: _ArrayLikeComplex_co | None = None,
404    *,
405    returned: L[True],
406    keepdims: L[False] | _NoValueType = ...,
407) -> _Tuple2[NDArray[np.complex128]]: ...
408@overload  # complex array-like, keepdims=True, returned=True
409def average(
410    a: _ListSeqND[complex],
411    axis: int | tuple[int, ...] | None = None,
412    weights: _ArrayLikeComplex_co | None = None,
413    *,
414    returned: L[True],
415    keepdims: L[True],
416) -> _Tuple2[NDArray[np.complex128]]: ...
417@overload  # unknown, axis=None
418def average(
419    a: _ArrayLikeNumber_co | _ArrayLikeObject_co,
420    axis: None = None,
421    weights: _ArrayLikeNumber_co | None = None,
422    returned: L[False] = False,
423    *,
424    keepdims: L[False] | _NoValueType = ...,
425) -> Any: ...
426@overload  # unknown, axis=<given>
427def average(
428    a: _ArrayLikeNumber_co | _ArrayLikeObject_co,
429    axis: int | tuple[int, ...],
430    weights: _ArrayLikeNumber_co | None = None,
431    returned: L[False] = False,
432    *,
433    keepdims: L[False] | _NoValueType = ...,
434) -> np.ndarray: ...
435@overload  # unknown, keepdims=True
436def average(
437    a: _ArrayLikeNumber_co | _ArrayLikeObject_co,
438    axis: int | tuple[int, ...] | None = None,
439    weights: _ArrayLikeNumber_co | None = None,
440    returned: L[False] = False,
441    *,
442    keepdims: L[True],
443) -> np.ndarray: ...
444@overload  # unknown, axis=None, returned=True
445def average(
446    a: _ArrayLikeNumber_co | _ArrayLikeObject_co,
447    axis: None = None,
448    weights: _ArrayLikeNumber_co | None = None,
449    *,
450    returned: L[True],
451    keepdims: L[False] | _NoValueType = ...,
452) -> _Tuple2[Any]: ...
453@overload  # unknown, axis=<given>, returned=True
454def average(
455    a: _ArrayLikeNumber_co | _ArrayLikeObject_co,
456    axis: int | tuple[int, ...],
457    weights: _ArrayLikeNumber_co | None = None,
458    *,
459    returned: L[True],
460    keepdims: L[False] | _NoValueType = ...,
461) -> _Tuple2[np.ndarray]: ...
462@overload  # unknown, returned=True, keepdims=True
463def average(
464    a: _ArrayLikeNumber_co | _ArrayLikeObject_co,
465    axis: int | tuple[int, ...] | None = None,
466    weights: _ArrayLikeNumber_co | None = None,
467    *,
468    returned: L[True],
469    keepdims: L[True],
470) -> _Tuple2[np.ndarray]: ...
471
472#
473@overload
474def asarray_chkfinite(a: _ArrayT, dtype: None = None, order: _OrderKACF = None) -> _ArrayT: ...
475@overload
476def asarray_chkfinite(
477    a: np.ndarray[_ShapeT], dtype: _DTypeLike[_ScalarT], order: _OrderKACF = None
478) -> _Array[_ShapeT, _ScalarT]: ...
479@overload
480def asarray_chkfinite(a: _ArrayLike[_ScalarT], dtype: None = None, order: _OrderKACF = None) -> NDArray[_ScalarT]: ...
481@overload
482def asarray_chkfinite(a: object, dtype: _DTypeLike[_ScalarT], order: _OrderKACF = None) -> NDArray[_ScalarT]: ...
483@overload
484def asarray_chkfinite(a: object, dtype: DTypeLike | None = None, order: _OrderKACF = None) -> NDArray[Incomplete]: ...
485
486# NOTE: Contrary to the documentation, scalars are also accepted and treated as
487# `[condlist]`. And even though the documentation says these should be boolean, in
488# practice anything that `np.array(condlist, dtype=bool)` accepts will work, i.e. any
489# array-like.
490@overload
491def piecewise(
492    x: _Array[_ShapeT, _ScalarT],
493    condlist: ArrayLike,
494    funclist: _PiecewiseFunctions[Any, _Tss],
495    *args: _Tss.args,
496    **kw: _Tss.kwargs,
497) -> _Array[_ShapeT, _ScalarT]: ...
498@overload
499def piecewise(
500    x: _ArrayLike[_ScalarT],
501    condlist: ArrayLike,
502    funclist: _PiecewiseFunctions[Any, _Tss],
503    *args: _Tss.args,
504    **kw: _Tss.kwargs,
505) -> NDArray[_ScalarT]: ...
506@overload
507def piecewise(
508    x: ArrayLike,
509    condlist: ArrayLike,
510    funclist: _PiecewiseFunctions[_ScalarT, _Tss],
511    *args: _Tss.args,
512    **kw: _Tss.kwargs,
513) -> NDArray[_ScalarT]: ...
514
515# NOTE: condition is usually boolean, but anything with zero/non-zero semantics works
516@overload
517def extract(condition: ArrayLike, arr: _ArrayLike[_ScalarT]) -> _Array1D[_ScalarT]: ...
518@overload
519def extract(condition: ArrayLike, arr: _SeqND[bool]) -> _Array1D[np.bool]: ...
520@overload
521def extract(condition: ArrayLike, arr: _ListSeqND[int]) -> _Array1D[np.int_]: ...
522@overload
523def extract(condition: ArrayLike, arr: _ListSeqND[float]) -> _Array1D[np.float64]: ...
524@overload
525def extract(condition: ArrayLike, arr: _ListSeqND[complex]) -> _Array1D[np.complex128]: ...
526@overload
527def extract(condition: ArrayLike, arr: _SeqND[bytes]) -> _Array1D[np.bytes_]: ...
528@overload
529def extract(condition: ArrayLike, arr: _SeqND[str]) -> _Array1D[np.str_]: ...
530@overload
531def extract(condition: ArrayLike, arr: ArrayLike) -> _Array1D[Incomplete]: ...
532
533# NOTE: unlike `extract`, passing non-boolean conditions for `condlist` will raise an
534# error at runtime
535@overload
536def select(
537    condlist: _SizedIterable[_ArrayLikeBool_co],
538    choicelist: Sequence[_ArrayT],
539    default: ArrayLike = 0,
540) -> _ArrayT: ...
541@overload
542def select(
543    condlist: _SizedIterable[_ArrayLikeBool_co],
544    choicelist: Sequence[_ArrayLike[_ScalarT]] | NDArray[_ScalarT],
545    default: ArrayLike = 0,
546) -> NDArray[_ScalarT]: ...
547@overload
548def select(
549    condlist: _SizedIterable[_ArrayLikeBool_co],
550    choicelist: Sequence[ArrayLike],
551    default: ArrayLike = 0,
552) -> np.ndarray: ...
553
554# keep roughly in sync with `ma.core.copy`
555@overload
556def copy(a: _ArrayT, order: _OrderKACF, subok: L[True]) -> _ArrayT: ...
557@overload
558def copy(a: _ArrayT, order: _OrderKACF = "K", *, subok: L[True]) -> _ArrayT: ...
559@overload
560def copy(a: _ArrayLike[_ScalarT], order: _OrderKACF = "K", subok: L[False] = False) -> NDArray[_ScalarT]: ...
561@overload
562def copy(a: ArrayLike, order: _OrderKACF = "K", subok: L[False] = False) -> NDArray[Incomplete]: ...
563
564#
565@overload  # ?d, known inexact scalar-type
566def gradient(
567    f: _ArrayNoD[_InexactTimeT],
568    *varargs: _ArrayLikeNumber_co,
569    axis: _ShapeLike | None = None,
570    edge_order: L[1, 2] = 1,
571    # `| Any` instead of ` | tuple` is returned to avoid several mypy_primer errors
572) -> _Array1D[_InexactTimeT] | Any: ...
573@overload  # 1d, known inexact scalar-type
574def gradient(
575    f: _Array1D[_InexactTimeT],
576    *varargs: _ArrayLikeNumber_co,
577    axis: _ShapeLike | None = None,
578    edge_order: L[1, 2] = 1,
579) -> _Array1D[_InexactTimeT]: ...
580@overload  # 2d, known inexact scalar-type
581def gradient(
582    f: _Array2D[_InexactTimeT],
583    *varargs: _ArrayLikeNumber_co,
584    axis: _ShapeLike | None = None,
585    edge_order: L[1, 2] = 1,
586) -> _Mesh2[_InexactTimeT, _InexactTimeT]: ...
587@overload  # 3d, known inexact scalar-type
588def gradient(
589    f: _Array3D[_InexactTimeT],
590    *varargs: _ArrayLikeNumber_co,
591    axis: _ShapeLike | None = None,
592    edge_order: L[1, 2] = 1,
593) -> _Mesh3[_InexactTimeT, _InexactTimeT, _InexactTimeT]: ...
594@overload  # ?d, datetime64 scalar-type
595def gradient(
596    f: _ArrayNoD[np.datetime64],
597    *varargs: _ArrayLikeNumber_co,
598    axis: _ShapeLike | None = None,
599    edge_order: L[1, 2] = 1,
600) -> _Array1D[np.timedelta64] | tuple[NDArray[np.timedelta64], ...]: ...
601@overload  # 1d, datetime64 scalar-type
602def gradient(
603    f: _Array1D[np.datetime64],
604    *varargs: _ArrayLikeNumber_co,
605    axis: _ShapeLike | None = None,
606    edge_order: L[1, 2] = 1,
607) -> _Array1D[np.timedelta64]: ...
608@overload  # 2d, datetime64 scalar-type
609def gradient(
610    f: _Array2D[np.datetime64],
611    *varargs: _ArrayLikeNumber_co,
612    axis: _ShapeLike | None = None,
613    edge_order: L[1, 2] = 1,
614) -> _Mesh2[np.timedelta64, np.timedelta64]: ...
615@overload  # 3d, datetime64 scalar-type
616def gradient(
617    f: _Array3D[np.datetime64],
618    *varargs: _ArrayLikeNumber_co,
619    axis: _ShapeLike | None = None,
620    edge_order: L[1, 2] = 1,
621) -> _Mesh3[np.timedelta64, np.timedelta64, np.timedelta64]: ...
622@overload  # 1d float-like
623def gradient(
624    f: _Seq1D[float],
625    *varargs: _ArrayLikeNumber_co,
626    axis: _ShapeLike | None = None,
627    edge_order: L[1, 2] = 1,
628) -> _Array1D[np.float64]: ...
629@overload  # 2d float-like
630def gradient(
631    f: _Seq2D[float],
632    *varargs: _ArrayLikeNumber_co,
633    axis: _ShapeLike | None = None,
634    edge_order: L[1, 2] = 1,
635) -> _Mesh2[np.float64, np.float64]: ...
636@overload  # 3d float-like
637def gradient(
638    f: _Seq3D[float],
639    *varargs: _ArrayLikeNumber_co,
640    axis: _ShapeLike | None = None,
641    edge_order: L[1, 2] = 1,
642) -> _Mesh3[np.float64, np.float64, np.float64]: ...
643@overload  # 1d complex-like  (the `list` avoids overlap with the float-like overload)
644def gradient(
645    f: list[complex],
646    *varargs: _ArrayLikeNumber_co,
647    axis: _ShapeLike | None = None,
648    edge_order: L[1, 2] = 1,
649) -> _Array1D[np.complex128]: ...
650@overload  # 2d float-like
651def gradient(
652    f: _Seq1D[list[complex]],
653    *varargs: _ArrayLikeNumber_co,
654    axis: _ShapeLike | None = None,
655    edge_order: L[1, 2] = 1,
656) -> _Mesh2[np.complex128, np.complex128]: ...
657@overload  # 3d float-like
658def gradient(
659    f: _Seq2D[list[complex]],
660    *varargs: _ArrayLikeNumber_co,
661    axis: _ShapeLike | None = None,
662    edge_order: L[1, 2] = 1,
663) -> _Mesh3[np.complex128, np.complex128, np.complex128]: ...
664@overload  # fallback
665def gradient(
666    f: ArrayLike,
667    *varargs: _ArrayLikeNumber_co,
668    axis: _ShapeLike | None = None,
669    edge_order: L[1, 2] = 1,
670) -> Incomplete: ...
671
672#
673@overload  # n == 0; return input unchanged
674def diff(
675    a: _T,
676    n: L[0],
677    axis: SupportsIndex = -1,
678    prepend: ArrayLike | _NoValueType = ...,  # = _NoValue
679    append: ArrayLike | _NoValueType = ...,  # = _NoValue
680) -> _T: ...
681@overload  # known array-type
682def diff(
683    a: _ArrayNumericT,
684    n: int = 1,
685    axis: SupportsIndex = -1,
686    prepend: ArrayLike | _NoValueType = ...,
687    append: ArrayLike | _NoValueType = ...,
688) -> _ArrayNumericT: ...
689@overload  # known shape, datetime64
690def diff(
691    a: _Array[_ShapeT, np.datetime64],
692    n: int = 1,
693    axis: SupportsIndex = -1,
694    prepend: ArrayLike | _NoValueType = ...,
695    append: ArrayLike | _NoValueType = ...,
696) -> _Array[_ShapeT, np.timedelta64]: ...
697@overload  # unknown shape, known scalar-type
698def diff(
699    a: _ArrayLike[_ScalarNumericT],
700    n: int = 1,
701    axis: SupportsIndex = -1,
702    prepend: ArrayLike | _NoValueType = ...,
703    append: ArrayLike | _NoValueType = ...,
704) -> NDArray[_ScalarNumericT]: ...
705@overload  # unknown shape, datetime64
706def diff(
707    a: _ArrayLike[np.datetime64],
708    n: int = 1,
709    axis: SupportsIndex = -1,
710    prepend: ArrayLike | _NoValueType = ...,
711    append: ArrayLike | _NoValueType = ...,
712) -> NDArray[np.timedelta64]: ...
713@overload  # 1d int
714def diff(
715    a: _Seq1D[int],
716    n: int = 1,
717    axis: SupportsIndex = -1,
718    prepend: ArrayLike | _NoValueType = ...,
719    append: ArrayLike | _NoValueType = ...,
720) -> _Array1D[np.int_]: ...
721@overload  # 2d int
722def diff(
723    a: _Seq2D[int],
724    n: int = 1,
725    axis: SupportsIndex = -1,
726    prepend: ArrayLike | _NoValueType = ...,
727    append: ArrayLike | _NoValueType = ...,
728) -> _Array2D[np.int_]: ...
729@overload  # 1d float  (the `list` avoids overlap with the `int` overloads)
730def diff(
731    a: list[float],
732    n: int = 1,
733    axis: SupportsIndex = -1,
734    prepend: ArrayLike | _NoValueType = ...,
735    append: ArrayLike | _NoValueType = ...,
736) -> _Array1D[np.float64]: ...
737@overload  # 2d float
738def diff(
739    a: _Seq1D[list[float]],
740    n: int = 1,
741    axis: SupportsIndex = -1,
742    prepend: ArrayLike | _NoValueType = ...,
743    append: ArrayLike | _NoValueType = ...,
744) -> _Array2D[np.float64]: ...
745@overload  # 1d complex  (the `list` avoids overlap with the `int` overloads)
746def diff(
747    a: list[complex],
748    n: int = 1,
749    axis: SupportsIndex = -1,
750    prepend: ArrayLike | _NoValueType = ...,
751    append: ArrayLike | _NoValueType = ...,
752) -> _Array1D[np.complex128]: ...
753@overload  # 2d complex
754def diff(
755    a: _Seq1D[list[complex]],
756    n: int = 1,
757    axis: SupportsIndex = -1,
758    prepend: ArrayLike | _NoValueType = ...,
759    append: ArrayLike | _NoValueType = ...,
760) -> _Array2D[np.complex128]: ...
761@overload  # unknown shape, unknown scalar-type
762def diff(
763    a: ArrayLike,
764    n: int = 1,
765    axis: SupportsIndex = -1,
766    prepend: ArrayLike | _NoValueType = ...,
767    append: ArrayLike | _NoValueType = ...,
768) -> NDArray[Incomplete]: ...
769
770#
771@overload  # float scalar
772def interp(
773    x: _FloatLike_co,
774    xp: _ArrayLikeFloat_co,
775    fp: _ArrayLikeFloat_co,
776    left: _FloatLike_co | None = None,
777    right: _FloatLike_co | None = None,
778    period: _FloatLike_co | None = None,
779) -> np.float64: ...
780@overload  # complex scalar
781def interp(
782    x: _FloatLike_co,
783    xp: _ArrayLikeFloat_co,
784    fp: _ArrayLike1D[np.complexfloating] | list[complex],
785    left: _NumberLike_co | None = None,
786    right: _NumberLike_co | None = None,
787    period: _FloatLike_co | None = None,
788) -> np.complex128: ...
789@overload  # float array
790def interp(
791    x: _Array[_ShapeT, _floating_co],
792    xp: _ArrayLikeFloat_co,
793    fp: _ArrayLikeFloat_co,
794    left: _FloatLike_co | None = None,
795    right: _FloatLike_co | None = None,
796    period: _FloatLike_co | None = None,
797) -> _Array[_ShapeT, np.float64]: ...
798@overload  # complex array
799def interp(
800    x: _Array[_ShapeT, _floating_co],
801    xp: _ArrayLikeFloat_co,
802    fp: _ArrayLike1D[np.complexfloating] | list[complex],
803    left: _NumberLike_co | None = None,
804    right: _NumberLike_co | None = None,
805    period: _FloatLike_co | None = None,
806) -> _Array[_ShapeT, np.complex128]: ...
807@overload  # float sequence
808def interp(
809    x: _Seq1D[_FloatLike_co],
810    xp: _ArrayLikeFloat_co,
811    fp: _ArrayLikeFloat_co,
812    left: _FloatLike_co | None = None,
813    right: _FloatLike_co | None = None,
814    period: _FloatLike_co | None = None,
815) -> _Array1D[np.float64]: ...
816@overload  # complex sequence
817def interp(
818    x: _Seq1D[_FloatLike_co],
819    xp: _ArrayLikeFloat_co,
820    fp: _ArrayLike1D[np.complexfloating] | list[complex],
821    left: _NumberLike_co | None = None,
822    right: _NumberLike_co | None = None,
823    period: _FloatLike_co | None = None,
824) -> _Array1D[np.complex128]: ...
825@overload  # float array-like
826def interp(
827    x: _SeqND[_FloatLike_co],
828    xp: _ArrayLikeFloat_co,
829    fp: _ArrayLikeFloat_co,
830    left: _FloatLike_co | None = None,
831    right: _FloatLike_co | None = None,
832    period: _FloatLike_co | None = None,
833) -> NDArray[np.float64]: ...
834@overload  # complex array-like
835def interp(
836    x: _SeqND[_FloatLike_co],
837    xp: _ArrayLikeFloat_co,
838    fp: _ArrayLike1D[np.complexfloating] | list[complex],
839    left: _NumberLike_co | None = None,
840    right: _NumberLike_co | None = None,
841    period: _FloatLike_co | None = None,
842) -> NDArray[np.complex128]: ...
843@overload  # float scalar/array-like
844def interp(
845    x: _ArrayLikeFloat_co,
846    xp: _ArrayLikeFloat_co,
847    fp: _ArrayLikeFloat_co,
848    left: _FloatLike_co | None = None,
849    right: _FloatLike_co | None = None,
850    period: _FloatLike_co | None = None,
851) -> NDArray[np.float64] | np.float64: ...
852@overload  # complex scalar/array-like
853def interp(
854    x: _ArrayLikeFloat_co,
855    xp: _ArrayLikeFloat_co,
856    fp: _ArrayLike1D[np.complexfloating],
857    left: _NumberLike_co | None = None,
858    right: _NumberLike_co | None = None,
859    period: _FloatLike_co | None = None,
860) -> NDArray[np.complex128] | np.complex128: ...
861@overload  # float/complex scalar/array-like
862def interp(
863    x: _ArrayLikeFloat_co,
864    xp: _ArrayLikeFloat_co,
865    fp: _ArrayLikeNumber_co,
866    left: _NumberLike_co | None = None,
867    right: _NumberLike_co | None = None,
868    period: _FloatLike_co | None = None,
869) -> NDArray[np.complex128 | np.float64] | np.complex128 | np.float64: ...
870
871#
872@overload  # 0d T: floating -> 0d T
873def angle(z: _FloatingT, deg: bool = False) -> _FloatingT: ...
874@overload  # 0d complex | float | ~integer -> 0d float64
875def angle(z: complex | _integer_co, deg: bool = False) -> np.float64: ...
876@overload  # 0d complex64 -> 0d float32
877def angle(z: np.complex64, deg: bool = False) -> np.float32: ...
878@overload  # 0d clongdouble -> 0d longdouble
879def angle(z: np.clongdouble, deg: bool = False) -> np.longdouble: ...
880@overload  # T: nd floating -> T
881def angle(z: _ArrayFloatingT, deg: bool = False) -> _ArrayFloatingT: ...
882@overload  # nd T: complex128 | ~integer -> nd float64
883def angle(z: _Array[_ShapeT, np.complex128 | _integer_co], deg: bool = False) -> _Array[_ShapeT, np.float64]: ...
884@overload  # nd T: complex64 -> nd float32
885def angle(z: _Array[_ShapeT, np.complex64], deg: bool = False) -> _Array[_ShapeT, np.float32]: ...
886@overload  # nd T: clongdouble -> nd longdouble
887def angle(z: _Array[_ShapeT, np.clongdouble], deg: bool = False) -> _Array[_ShapeT, np.longdouble]: ...
888@overload  # 1d complex -> 1d float64
889def angle(z: _Seq1D[complex], deg: bool = False) -> _Array1D[np.float64]: ...
890@overload  # 2d complex -> 2d float64
891def angle(z: _Seq2D[complex], deg: bool = False) -> _Array2D[np.float64]: ...
892@overload  # 3d complex -> 3d float64
893def angle(z: _Seq3D[complex], deg: bool = False) -> _Array3D[np.float64]: ...
894@overload  # fallback
895def angle(z: _ArrayLikeComplex_co, deg: bool = False) -> NDArray[np.floating] | Any: ...
896
897#
898@overload  # known array-type
899def unwrap(
900    p: _ArrayFloatObjT,
901    discont: float | None = None,
902    axis: int = -1,
903    *,
904    period: float = ...,  # = τ
905) -> _ArrayFloatObjT: ...
906@overload  # known shape, float64
907def unwrap(
908    p: _Array[_ShapeT, _float64_co],
909    discont: float | None = None,
910    axis: int = -1,
911    *,
912    period: float = ...,  # = τ
913) -> _Array[_ShapeT, np.float64]: ...
914@overload  # 1d float64-like
915def unwrap(
916    p: _Seq1D[float | _float64_co],
917    discont: float | None = None,
918    axis: int = -1,
919    *,
920    period: float = ...,  # = τ
921) -> _Array1D[np.float64]: ...
922@overload  # 2d float64-like
923def unwrap(
924    p: _Seq2D[float | _float64_co],
925    discont: float | None = None,
926    axis: int = -1,
927    *,
928    period: float = ...,  # = τ
929) -> _Array2D[np.float64]: ...
930@overload  # 3d float64-like
931def unwrap(
932    p: _Seq3D[float | _float64_co],
933    discont: float | None = None,
934    axis: int = -1,
935    *,
936    period: float = ...,  # = τ
937) -> _Array3D[np.float64]: ...
938@overload  # ?d, float64
939def unwrap(
940    p: _SeqND[float] | _ArrayLike[_float64_co],
941    discont: float | None = None,
942    axis: int = -1,
943    *,
944    period: float = ...,  # = τ
945) -> NDArray[np.float64]: ...
946@overload  # fallback
947def unwrap(
948    p: _ArrayLikeFloat_co | _ArrayLikeObject_co,
949    discont: float | None = None,
950    axis: int = -1,
951    *,
952    period: float = ...,  # = τ
953) -> np.ndarray: ...
954
955#
956@overload
957def sort_complex(a: _ArrayComplexT) -> _ArrayComplexT: ...
958@overload  # complex64, shape known
959def sort_complex(a: _Array[_ShapeT, np.int8 | np.uint8 | np.int16 | np.uint16]) -> _Array[_ShapeT, np.complex64]: ...
960@overload  # complex64, shape unknown
961def sort_complex(a: _ArrayLike[np.int8 | np.uint8 | np.int16 | np.uint16]) -> NDArray[np.complex64]: ...
962@overload  # complex128, shape known
963def sort_complex(a: _Array[_ShapeT, _SortsToComplex128]) -> _Array[_ShapeT, np.complex128]: ...
964@overload  # complex128, shape unknown
965def sort_complex(a: _ArrayLike[_SortsToComplex128]) -> NDArray[np.complex128]: ...
966@overload  # clongdouble, shape known
967def sort_complex(a: _Array[_ShapeT, np.longdouble]) -> _Array[_ShapeT, np.clongdouble]: ...
968@overload  # clongdouble, shape unknown
969def sort_complex(a: _ArrayLike[np.longdouble]) -> NDArray[np.clongdouble]: ...
970
971#
972def trim_zeros(filt: _TrimZerosSequence[_T], trim: L["f", "b", "fb", "bf"] = "fb", axis: _ShapeLike | None = None) -> _T: ...
973
974# NOTE: keep in sync with `corrcoef`
975@overload  # ?d, known inexact scalar-type >=64 precision, y=<given>.
976def cov(
977    m: _ArrayLike[_AnyDoubleT],
978    y: _ArrayLike[_AnyDoubleT],
979    rowvar: bool = True,
980    bias: bool = False,
981    ddof: SupportsIndex | SupportsInt | None = None,
982    fweights: _ArrayLikeInt_co | None = None,
983    aweights: _ArrayLikeFloat_co | None = None,
984    *,
985    dtype: None = None,
986) -> _Array2D[_AnyDoubleT]: ...
987@overload  # ?d, known inexact scalar-type >=64 precision, y=None -> 0d or 2d
988def cov(
989    m: _ArrayNoD[_AnyDoubleT],
990    y: None = None,
991    rowvar: bool = True,
992    bias: bool = False,
993    ddof: SupportsIndex | SupportsInt | None = None,
994    fweights: _ArrayLikeInt_co | None = None,
995    aweights: _ArrayLikeFloat_co | None = None,
996    *,
997    dtype: _DTypeLike[_AnyDoubleT] | None = None,
998) -> NDArray[_AnyDoubleT]: ...
999@overload  # 1d, known inexact scalar-type >=64 precision, y=None
1000def cov(
1001    m: _Array1D[_AnyDoubleT],
1002    y: None = None,
1003    rowvar: bool = True,
1004    bias: bool = False,
1005    ddof: SupportsIndex | SupportsInt | None = None,
1006    fweights: _ArrayLikeInt_co | None = None,
1007    aweights: _ArrayLikeFloat_co | None = None,
1008    *,
1009    dtype: _DTypeLike[_AnyDoubleT] | None = None,
1010) -> _Array0D[_AnyDoubleT]: ...
1011@overload  # nd, known inexact scalar-type >=64 precision, y=None -> 0d or 2d
1012def cov(
1013    m: _ArrayLike[_AnyDoubleT],
1014    y: None = None,
1015    rowvar: bool = True,
1016    bias: bool = False,
1017    ddof: SupportsIndex | SupportsInt | None = None,
1018    fweights: _ArrayLikeInt_co | None = None,
1019    aweights: _ArrayLikeFloat_co | None = None,
1020    *,
1021    dtype: _DTypeLike[_AnyDoubleT] | None = None,
1022) -> NDArray[_AnyDoubleT]: ...
1023@overload  # nd, casts to float64, y=<given>
1024def cov(
1025    m: NDArray[np.float32 | np.float16 | _integer_co] | _Seq1D[float] | _Seq2D[float],
1026    y: NDArray[np.float32 | np.float16 | _integer_co] | _Seq1D[float] | _Seq2D[float],
1027    rowvar: bool = True,
1028    bias: bool = False,
1029    ddof: SupportsIndex | SupportsInt | None = None,
1030    fweights: _ArrayLikeInt_co | None = None,
1031    aweights: _ArrayLikeFloat_co | None = None,
1032    *,
1033    dtype: _DTypeLike[np.float64] | None = None,
1034) -> _Array2D[np.float64]: ...
1035@overload  # ?d or 2d, casts to float64, y=None -> 0d or 2d
1036def cov(
1037    m: _ArrayNoD[np.float32 | np.float16 | _integer_co] | _Seq2D[float],
1038    y: None = None,
1039    rowvar: bool = True,
1040    bias: bool = False,
1041    ddof: SupportsIndex | SupportsInt | None = None,
1042    fweights: _ArrayLikeInt_co | None = None,
1043    aweights: _ArrayLikeFloat_co | None = None,
1044    *,
1045    dtype: _DTypeLike[np.float64] | None = None,
1046) -> NDArray[np.float64]: ...
1047@overload  # 1d, casts to float64, y=None
1048def cov(
1049    m:  _Array1D[np.float32 | np.float16 | _integer_co] | _Seq1D[float],
1050    y: None = None,
1051    rowvar: bool = True,
1052    bias: bool = False,
1053    ddof: SupportsIndex | SupportsInt | None = None,
1054    fweights: _ArrayLikeInt_co | None = None,
1055    aweights: _ArrayLikeFloat_co | None = None,
1056    *,
1057    dtype: _DTypeLike[np.float64] | None = None,
1058) -> _Array0D[np.float64]: ...
1059@overload  # nd, casts to float64, y=None -> 0d or 2d
1060def cov(
1061    m:  _ArrayLike[np.float32 | np.float16 | _integer_co],
1062    y: None = None,
1063    rowvar: bool = True,
1064    bias: bool = False,
1065    ddof: SupportsIndex | SupportsInt | None = None,
1066    fweights: _ArrayLikeInt_co | None = None,
1067    aweights: _ArrayLikeFloat_co | None = None,
1068    *,
1069    dtype: _DTypeLike[np.float64] | None = None,
1070) -> NDArray[np.float64]: ...
1071@overload  # 1d complex, y=<given>  (`list` avoids overlap with float overloads)
1072def cov(
1073    m: list[complex] | _Seq1D[list[complex]],
1074    y: list[complex] | _Seq1D[list[complex]],
1075    rowvar: bool = True,
1076    bias: bool = False,
1077    ddof: SupportsIndex | SupportsInt | None = None,
1078    fweights: _ArrayLikeInt_co | None = None,
1079    aweights: _ArrayLikeFloat_co | None = None,
1080    *,
1081    dtype: _DTypeLike[np.complex128] | None = None,
1082) -> _Array2D[np.complex128]: ...
1083@overload  # 1d complex, y=None
1084def cov(
1085    m: list[complex],
1086    y: None = None,
1087    rowvar: bool = True,
1088    bias: bool = False,
1089    ddof: SupportsIndex | SupportsInt | None = None,
1090    fweights: _ArrayLikeInt_co | None = None,
1091    aweights: _ArrayLikeFloat_co | None = None,
1092    *,
1093    dtype: _DTypeLike[np.complex128] | None = None,
1094) -> _Array0D[np.complex128]: ...
1095@overload  # 2d complex, y=None -> 0d or 2d
1096def cov(
1097    m: _Seq1D[list[complex]],
1098    y: None = None,
1099    rowvar: bool = True,
1100    bias: bool = False,
1101    ddof: SupportsIndex | SupportsInt | None = None,
1102    fweights: _ArrayLikeInt_co | None = None,
1103    aweights: _ArrayLikeFloat_co | None = None,
1104    *,
1105    dtype: _DTypeLike[np.complex128] | None = None,
1106) -> NDArray[np.complex128]: ...
1107@overload  # 1d complex-like, y=None, dtype=<known>
1108def cov(
1109    m: _Seq1D[_ComplexLike_co],
1110    y: None = None,
1111    rowvar: bool = True,
1112    bias: bool = False,
1113    ddof: SupportsIndex | SupportsInt | None = None,
1114    fweights: _ArrayLikeInt_co | None = None,
1115    aweights: _ArrayLikeFloat_co | None = None,
1116    *,
1117    dtype: _DTypeLike[_ScalarT],
1118) -> _Array0D[_ScalarT]: ...
1119@overload  # nd complex-like, y=<given>, dtype=<known>
1120def cov(
1121    m: _ArrayLikeComplex_co,
1122    y: _ArrayLikeComplex_co,
1123    rowvar: bool = True,
1124    bias: bool = False,
1125    ddof: SupportsIndex | SupportsInt | None = None,
1126    fweights: _ArrayLikeInt_co | None = None,
1127    aweights: _ArrayLikeFloat_co | None = None,
1128    *,
1129    dtype: _DTypeLike[_ScalarT],
1130) -> _Array2D[_ScalarT]: ...
1131@overload  # nd complex-like, y=None, dtype=<known> -> 0d or 2d
1132def cov(
1133    m: _ArrayLikeComplex_co,
1134    y: None = None,
1135    rowvar: bool = True,
1136    bias: bool = False,
1137    ddof: SupportsIndex | SupportsInt | None = None,
1138    fweights: _ArrayLikeInt_co | None = None,
1139    aweights: _ArrayLikeFloat_co | None = None,
1140    *,
1141    dtype: _DTypeLike[_ScalarT],
1142) -> NDArray[_ScalarT]: ...
1143@overload  # nd complex-like, y=<given>, dtype=?
1144def cov(
1145    m: _ArrayLikeComplex_co,
1146    y: _ArrayLikeComplex_co,
1147    rowvar: bool = True,
1148    bias: bool = False,
1149    ddof: SupportsIndex | SupportsInt | None = None,
1150    fweights: _ArrayLikeInt_co | None = None,
1151    aweights: _ArrayLikeFloat_co | None = None,
1152    *,
1153    dtype: DTypeLike | None = None,
1154) -> _Array2D[Incomplete]: ...
1155@overload  # 1d complex-like, y=None, dtype=?
1156def cov(
1157    m: _Seq1D[_ComplexLike_co],
1158    y: None = None,
1159    rowvar: bool = True,
1160    bias: bool = False,
1161    ddof: SupportsIndex | SupportsInt | None = None,
1162    fweights: _ArrayLikeInt_co | None = None,
1163    aweights: _ArrayLikeFloat_co | None = None,
1164    *,
1165    dtype: DTypeLike | None = None,
1166) -> _Array0D[Incomplete]: ...
1167@overload  # nd complex-like, dtype=?
1168def cov(
1169    m: _ArrayLikeComplex_co,
1170    y: _ArrayLikeComplex_co | None = None,
1171    rowvar: bool = True,
1172    bias: bool = False,
1173    ddof: SupportsIndex | SupportsInt | None = None,
1174    fweights: _ArrayLikeInt_co | None = None,
1175    aweights: _ArrayLikeFloat_co | None = None,
1176    *,
1177    dtype: DTypeLike | None = None,
1178) -> NDArray[Incomplete]: ...
1179
1180# NOTE: If only `x` is given and the resulting array has shape (1,1), a bare scalar
1181# is returned instead of a 2D array. When y is given, a 2D array is always returned.
1182# This differs from `cov`, which returns 0-D arrays instead of scalars in such cases.
1183# NOTE: keep in sync with `cov`
1184@overload  # ?d, known inexact scalar-type >=64 precision, y=<given>.
1185def corrcoef(
1186    x: _ArrayLike[_AnyDoubleT],
1187    y: _ArrayLike[_AnyDoubleT],
1188    rowvar: bool = True,
1189    *,
1190    dtype: _DTypeLike[_AnyDoubleT] | None = None,
1191) -> _Array2D[_AnyDoubleT]: ...
1192@overload  # ?d, known inexact scalar-type >=64 precision, y=None
1193def corrcoef(
1194    x: _ArrayNoD[_AnyDoubleT],
1195    y: None = None,
1196    rowvar: bool = True,
1197    *,
1198    dtype: _DTypeLike[_AnyDoubleT] | None = None,
1199) -> _Array2D[_AnyDoubleT] | _AnyDoubleT: ...
1200@overload  # 1d, known inexact scalar-type >=64 precision, y=None

Showing the first 1,200 of 2325 lines. Download the file for the rest.

codekingpro/portable-devtools · Team Ai