/ lib / numpy / core / numeric.pyi
numeric.pyi
  1  from collections.abc import Callable, Sequence
  2  from typing import (
  3      Any,
  4      overload,
  5      TypeVar,
  6      Literal,
  7      SupportsAbs,
  8      SupportsIndex,
  9      NoReturn,
 10  )
 11  from typing_extensions import TypeGuard
 12  
 13  from numpy import (
 14      ComplexWarning as ComplexWarning,
 15      generic,
 16      unsignedinteger,
 17      signedinteger,
 18      floating,
 19      complexfloating,
 20      bool_,
 21      int_,
 22      intp,
 23      float64,
 24      timedelta64,
 25      object_,
 26      _OrderKACF,
 27      _OrderCF,
 28  )
 29  
 30  from numpy._typing import (
 31      ArrayLike,
 32      NDArray,
 33      DTypeLike,
 34      _ShapeLike,
 35      _DTypeLike,
 36      _ArrayLike,
 37      _SupportsArrayFunc,
 38      _ScalarLike_co,
 39      _ArrayLikeBool_co,
 40      _ArrayLikeUInt_co,
 41      _ArrayLikeInt_co,
 42      _ArrayLikeFloat_co,
 43      _ArrayLikeComplex_co,
 44      _ArrayLikeTD64_co,
 45      _ArrayLikeObject_co,
 46      _ArrayLikeUnknown,
 47  )
 48  
 49  _T = TypeVar("_T")
 50  _SCT = TypeVar("_SCT", bound=generic)
 51  _ArrayType = TypeVar("_ArrayType", bound=NDArray[Any])
 52  
 53  _CorrelateMode = Literal["valid", "same", "full"]
 54  
 55  __all__: list[str]
 56  
 57  @overload
 58  def zeros_like(
 59      a: _ArrayType,
 60      dtype: None = ...,
 61      order: _OrderKACF = ...,
 62      subok: Literal[True] = ...,
 63      shape: None = ...,
 64  ) -> _ArrayType: ...
 65  @overload
 66  def zeros_like(
 67      a: _ArrayLike[_SCT],
 68      dtype: None = ...,
 69      order: _OrderKACF = ...,
 70      subok: bool = ...,
 71      shape: None | _ShapeLike = ...,
 72  ) -> NDArray[_SCT]: ...
 73  @overload
 74  def zeros_like(
 75      a: object,
 76      dtype: None = ...,
 77      order: _OrderKACF = ...,
 78      subok: bool = ...,
 79      shape: None | _ShapeLike= ...,
 80  ) -> NDArray[Any]: ...
 81  @overload
 82  def zeros_like(
 83      a: Any,
 84      dtype: _DTypeLike[_SCT],
 85      order: _OrderKACF = ...,
 86      subok: bool = ...,
 87      shape: None | _ShapeLike= ...,
 88  ) -> NDArray[_SCT]: ...
 89  @overload
 90  def zeros_like(
 91      a: Any,
 92      dtype: DTypeLike,
 93      order: _OrderKACF = ...,
 94      subok: bool = ...,
 95      shape: None | _ShapeLike= ...,
 96  ) -> NDArray[Any]: ...
 97  
 98  @overload
 99  def ones(
100      shape: _ShapeLike,
101      dtype: None = ...,
102      order: _OrderCF = ...,
103      *,
104      like: _SupportsArrayFunc = ...,
105  ) -> NDArray[float64]: ...
106  @overload
107  def ones(
108      shape: _ShapeLike,
109      dtype: _DTypeLike[_SCT],
110      order: _OrderCF = ...,
111      *,
112      like: _SupportsArrayFunc = ...,
113  ) -> NDArray[_SCT]: ...
114  @overload
115  def ones(
116      shape: _ShapeLike,
117      dtype: DTypeLike,
118      order: _OrderCF = ...,
119      *,
120      like: _SupportsArrayFunc = ...,
121  ) -> NDArray[Any]: ...
122  
123  @overload
124  def ones_like(
125      a: _ArrayType,
126      dtype: None = ...,
127      order: _OrderKACF = ...,
128      subok: Literal[True] = ...,
129      shape: None = ...,
130  ) -> _ArrayType: ...
131  @overload
132  def ones_like(
133      a: _ArrayLike[_SCT],
134      dtype: None = ...,
135      order: _OrderKACF = ...,
136      subok: bool = ...,
137      shape: None | _ShapeLike = ...,
138  ) -> NDArray[_SCT]: ...
139  @overload
140  def ones_like(
141      a: object,
142      dtype: None = ...,
143      order: _OrderKACF = ...,
144      subok: bool = ...,
145      shape: None | _ShapeLike= ...,
146  ) -> NDArray[Any]: ...
147  @overload
148  def ones_like(
149      a: Any,
150      dtype: _DTypeLike[_SCT],
151      order: _OrderKACF = ...,
152      subok: bool = ...,
153      shape: None | _ShapeLike= ...,
154  ) -> NDArray[_SCT]: ...
155  @overload
156  def ones_like(
157      a: Any,
158      dtype: DTypeLike,
159      order: _OrderKACF = ...,
160      subok: bool = ...,
161      shape: None | _ShapeLike= ...,
162  ) -> NDArray[Any]: ...
163  
164  @overload
165  def full(
166      shape: _ShapeLike,
167      fill_value: Any,
168      dtype: None = ...,
169      order: _OrderCF = ...,
170      *,
171      like: _SupportsArrayFunc = ...,
172  ) -> NDArray[Any]: ...
173  @overload
174  def full(
175      shape: _ShapeLike,
176      fill_value: Any,
177      dtype: _DTypeLike[_SCT],
178      order: _OrderCF = ...,
179      *,
180      like: _SupportsArrayFunc = ...,
181  ) -> NDArray[_SCT]: ...
182  @overload
183  def full(
184      shape: _ShapeLike,
185      fill_value: Any,
186      dtype: DTypeLike,
187      order: _OrderCF = ...,
188      *,
189      like: _SupportsArrayFunc = ...,
190  ) -> NDArray[Any]: ...
191  
192  @overload
193  def full_like(
194      a: _ArrayType,
195      fill_value: Any,
196      dtype: None = ...,
197      order: _OrderKACF = ...,
198      subok: Literal[True] = ...,
199      shape: None = ...,
200  ) -> _ArrayType: ...
201  @overload
202  def full_like(
203      a: _ArrayLike[_SCT],
204      fill_value: Any,
205      dtype: None = ...,
206      order: _OrderKACF = ...,
207      subok: bool = ...,
208      shape: None | _ShapeLike = ...,
209  ) -> NDArray[_SCT]: ...
210  @overload
211  def full_like(
212      a: object,
213      fill_value: Any,
214      dtype: None = ...,
215      order: _OrderKACF = ...,
216      subok: bool = ...,
217      shape: None | _ShapeLike= ...,
218  ) -> NDArray[Any]: ...
219  @overload
220  def full_like(
221      a: Any,
222      fill_value: Any,
223      dtype: _DTypeLike[_SCT],
224      order: _OrderKACF = ...,
225      subok: bool = ...,
226      shape: None | _ShapeLike= ...,
227  ) -> NDArray[_SCT]: ...
228  @overload
229  def full_like(
230      a: Any,
231      fill_value: Any,
232      dtype: DTypeLike,
233      order: _OrderKACF = ...,
234      subok: bool = ...,
235      shape: None | _ShapeLike= ...,
236  ) -> NDArray[Any]: ...
237  
238  @overload
239  def count_nonzero(
240      a: ArrayLike,
241      axis: None = ...,
242      *,
243      keepdims: Literal[False] = ...,
244  ) -> int: ...
245  @overload
246  def count_nonzero(
247      a: ArrayLike,
248      axis: _ShapeLike = ...,
249      *,
250      keepdims: bool = ...,
251  ) -> Any: ...  # TODO: np.intp or ndarray[np.intp]
252  
253  def isfortran(a: NDArray[Any] | generic) -> bool: ...
254  
255  def argwhere(a: ArrayLike) -> NDArray[intp]: ...
256  
257  def flatnonzero(a: ArrayLike) -> NDArray[intp]: ...
258  
259  @overload
260  def correlate(
261      a: _ArrayLikeUnknown,
262      v: _ArrayLikeUnknown,
263      mode: _CorrelateMode = ...,
264  ) -> NDArray[Any]: ...
265  @overload
266  def correlate(
267      a: _ArrayLikeBool_co,
268      v: _ArrayLikeBool_co,
269      mode: _CorrelateMode = ...,
270  ) -> NDArray[bool_]: ...
271  @overload
272  def correlate(
273      a: _ArrayLikeUInt_co,
274      v: _ArrayLikeUInt_co,
275      mode: _CorrelateMode = ...,
276  ) -> NDArray[unsignedinteger[Any]]: ...
277  @overload
278  def correlate(
279      a: _ArrayLikeInt_co,
280      v: _ArrayLikeInt_co,
281      mode: _CorrelateMode = ...,
282  ) -> NDArray[signedinteger[Any]]: ...
283  @overload
284  def correlate(
285      a: _ArrayLikeFloat_co,
286      v: _ArrayLikeFloat_co,
287      mode: _CorrelateMode = ...,
288  ) -> NDArray[floating[Any]]: ...
289  @overload
290  def correlate(
291      a: _ArrayLikeComplex_co,
292      v: _ArrayLikeComplex_co,
293      mode: _CorrelateMode = ...,
294  ) -> NDArray[complexfloating[Any, Any]]: ...
295  @overload
296  def correlate(
297      a: _ArrayLikeTD64_co,
298      v: _ArrayLikeTD64_co,
299      mode: _CorrelateMode = ...,
300  ) -> NDArray[timedelta64]: ...
301  @overload
302  def correlate(
303      a: _ArrayLikeObject_co,
304      v: _ArrayLikeObject_co,
305      mode: _CorrelateMode = ...,
306  ) -> NDArray[object_]: ...
307  
308  @overload
309  def convolve(
310      a: _ArrayLikeUnknown,
311      v: _ArrayLikeUnknown,
312      mode: _CorrelateMode = ...,
313  ) -> NDArray[Any]: ...
314  @overload
315  def convolve(
316      a: _ArrayLikeBool_co,
317      v: _ArrayLikeBool_co,
318      mode: _CorrelateMode = ...,
319  ) -> NDArray[bool_]: ...
320  @overload
321  def convolve(
322      a: _ArrayLikeUInt_co,
323      v: _ArrayLikeUInt_co,
324      mode: _CorrelateMode = ...,
325  ) -> NDArray[unsignedinteger[Any]]: ...
326  @overload
327  def convolve(
328      a: _ArrayLikeInt_co,
329      v: _ArrayLikeInt_co,
330      mode: _CorrelateMode = ...,
331  ) -> NDArray[signedinteger[Any]]: ...
332  @overload
333  def convolve(
334      a: _ArrayLikeFloat_co,
335      v: _ArrayLikeFloat_co,
336      mode: _CorrelateMode = ...,
337  ) -> NDArray[floating[Any]]: ...
338  @overload
339  def convolve(
340      a: _ArrayLikeComplex_co,
341      v: _ArrayLikeComplex_co,
342      mode: _CorrelateMode = ...,
343  ) -> NDArray[complexfloating[Any, Any]]: ...
344  @overload
345  def convolve(
346      a: _ArrayLikeTD64_co,
347      v: _ArrayLikeTD64_co,
348      mode: _CorrelateMode = ...,
349  ) -> NDArray[timedelta64]: ...
350  @overload
351  def convolve(
352      a: _ArrayLikeObject_co,
353      v: _ArrayLikeObject_co,
354      mode: _CorrelateMode = ...,
355  ) -> NDArray[object_]: ...
356  
357  @overload
358  def outer(
359      a: _ArrayLikeUnknown,
360      b: _ArrayLikeUnknown,
361      out: None = ...,
362  ) -> NDArray[Any]: ...
363  @overload
364  def outer(
365      a: _ArrayLikeBool_co,
366      b: _ArrayLikeBool_co,
367      out: None = ...,
368  ) -> NDArray[bool_]: ...
369  @overload
370  def outer(
371      a: _ArrayLikeUInt_co,
372      b: _ArrayLikeUInt_co,
373      out: None = ...,
374  ) -> NDArray[unsignedinteger[Any]]: ...
375  @overload
376  def outer(
377      a: _ArrayLikeInt_co,
378      b: _ArrayLikeInt_co,
379      out: None = ...,
380  ) -> NDArray[signedinteger[Any]]: ...
381  @overload
382  def outer(
383      a: _ArrayLikeFloat_co,
384      b: _ArrayLikeFloat_co,
385      out: None = ...,
386  ) -> NDArray[floating[Any]]: ...
387  @overload
388  def outer(
389      a: _ArrayLikeComplex_co,
390      b: _ArrayLikeComplex_co,
391      out: None = ...,
392  ) -> NDArray[complexfloating[Any, Any]]: ...
393  @overload
394  def outer(
395      a: _ArrayLikeTD64_co,
396      b: _ArrayLikeTD64_co,
397      out: None = ...,
398  ) -> NDArray[timedelta64]: ...
399  @overload
400  def outer(
401      a: _ArrayLikeObject_co,
402      b: _ArrayLikeObject_co,
403      out: None = ...,
404  ) -> NDArray[object_]: ...
405  @overload
406  def outer(
407      a: _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeObject_co,
408      b: _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeObject_co,
409      out: _ArrayType,
410  ) -> _ArrayType: ...
411  
412  @overload
413  def tensordot(
414      a: _ArrayLikeUnknown,
415      b: _ArrayLikeUnknown,
416      axes: int | tuple[_ShapeLike, _ShapeLike] = ...,
417  ) -> NDArray[Any]: ...
418  @overload
419  def tensordot(
420      a: _ArrayLikeBool_co,
421      b: _ArrayLikeBool_co,
422      axes: int | tuple[_ShapeLike, _ShapeLike] = ...,
423  ) -> NDArray[bool_]: ...
424  @overload
425  def tensordot(
426      a: _ArrayLikeUInt_co,
427      b: _ArrayLikeUInt_co,
428      axes: int | tuple[_ShapeLike, _ShapeLike] = ...,
429  ) -> NDArray[unsignedinteger[Any]]: ...
430  @overload
431  def tensordot(
432      a: _ArrayLikeInt_co,
433      b: _ArrayLikeInt_co,
434      axes: int | tuple[_ShapeLike, _ShapeLike] = ...,
435  ) -> NDArray[signedinteger[Any]]: ...
436  @overload
437  def tensordot(
438      a: _ArrayLikeFloat_co,
439      b: _ArrayLikeFloat_co,
440      axes: int | tuple[_ShapeLike, _ShapeLike] = ...,
441  ) -> NDArray[floating[Any]]: ...
442  @overload
443  def tensordot(
444      a: _ArrayLikeComplex_co,
445      b: _ArrayLikeComplex_co,
446      axes: int | tuple[_ShapeLike, _ShapeLike] = ...,
447  ) -> NDArray[complexfloating[Any, Any]]: ...
448  @overload
449  def tensordot(
450      a: _ArrayLikeTD64_co,
451      b: _ArrayLikeTD64_co,
452      axes: int | tuple[_ShapeLike, _ShapeLike] = ...,
453  ) -> NDArray[timedelta64]: ...
454  @overload
455  def tensordot(
456      a: _ArrayLikeObject_co,
457      b: _ArrayLikeObject_co,
458      axes: int | tuple[_ShapeLike, _ShapeLike] = ...,
459  ) -> NDArray[object_]: ...
460  
461  @overload
462  def roll(
463      a: _ArrayLike[_SCT],
464      shift: _ShapeLike,
465      axis: None | _ShapeLike = ...,
466  ) -> NDArray[_SCT]: ...
467  @overload
468  def roll(
469      a: ArrayLike,
470      shift: _ShapeLike,
471      axis: None | _ShapeLike = ...,
472  ) -> NDArray[Any]: ...
473  
474  def rollaxis(
475      a: NDArray[_SCT],
476      axis: int,
477      start: int = ...,
478  ) -> NDArray[_SCT]: ...
479  
480  def moveaxis(
481      a: NDArray[_SCT],
482      source: _ShapeLike,
483      destination: _ShapeLike,
484  ) -> NDArray[_SCT]: ...
485  
486  @overload
487  def cross(
488      a: _ArrayLikeUnknown,
489      b: _ArrayLikeUnknown,
490      axisa: int = ...,
491      axisb: int = ...,
492      axisc: int = ...,
493      axis: None | int = ...,
494  ) -> NDArray[Any]: ...
495  @overload
496  def cross(
497      a: _ArrayLikeBool_co,
498      b: _ArrayLikeBool_co,
499      axisa: int = ...,
500      axisb: int = ...,
501      axisc: int = ...,
502      axis: None | int = ...,
503  ) -> NoReturn: ...
504  @overload
505  def cross(
506      a: _ArrayLikeUInt_co,
507      b: _ArrayLikeUInt_co,
508      axisa: int = ...,
509      axisb: int = ...,
510      axisc: int = ...,
511      axis: None | int = ...,
512  ) -> NDArray[unsignedinteger[Any]]: ...
513  @overload
514  def cross(
515      a: _ArrayLikeInt_co,
516      b: _ArrayLikeInt_co,
517      axisa: int = ...,
518      axisb: int = ...,
519      axisc: int = ...,
520      axis: None | int = ...,
521  ) -> NDArray[signedinteger[Any]]: ...
522  @overload
523  def cross(
524      a: _ArrayLikeFloat_co,
525      b: _ArrayLikeFloat_co,
526      axisa: int = ...,
527      axisb: int = ...,
528      axisc: int = ...,
529      axis: None | int = ...,
530  ) -> NDArray[floating[Any]]: ...
531  @overload
532  def cross(
533      a: _ArrayLikeComplex_co,
534      b: _ArrayLikeComplex_co,
535      axisa: int = ...,
536      axisb: int = ...,
537      axisc: int = ...,
538      axis: None | int = ...,
539  ) -> NDArray[complexfloating[Any, Any]]: ...
540  @overload
541  def cross(
542      a: _ArrayLikeObject_co,
543      b: _ArrayLikeObject_co,
544      axisa: int = ...,
545      axisb: int = ...,
546      axisc: int = ...,
547      axis: None | int = ...,
548  ) -> NDArray[object_]: ...
549  
550  @overload
551  def indices(
552      dimensions: Sequence[int],
553      dtype: type[int] = ...,
554      sparse: Literal[False] = ...,
555  ) -> NDArray[int_]: ...
556  @overload
557  def indices(
558      dimensions: Sequence[int],
559      dtype: type[int] = ...,
560      sparse: Literal[True] = ...,
561  ) -> tuple[NDArray[int_], ...]: ...
562  @overload
563  def indices(
564      dimensions: Sequence[int],
565      dtype: _DTypeLike[_SCT],
566      sparse: Literal[False] = ...,
567  ) -> NDArray[_SCT]: ...
568  @overload
569  def indices(
570      dimensions: Sequence[int],
571      dtype: _DTypeLike[_SCT],
572      sparse: Literal[True],
573  ) -> tuple[NDArray[_SCT], ...]: ...
574  @overload
575  def indices(
576      dimensions: Sequence[int],
577      dtype: DTypeLike,
578      sparse: Literal[False] = ...,
579  ) -> NDArray[Any]: ...
580  @overload
581  def indices(
582      dimensions: Sequence[int],
583      dtype: DTypeLike,
584      sparse: Literal[True],
585  ) -> tuple[NDArray[Any], ...]: ...
586  
587  def fromfunction(
588      function: Callable[..., _T],
589      shape: Sequence[int],
590      *,
591      dtype: DTypeLike = ...,
592      like: _SupportsArrayFunc = ...,
593      **kwargs: Any,
594  ) -> _T: ...
595  
596  def isscalar(element: object) -> TypeGuard[
597      generic | bool | int | float | complex | str | bytes | memoryview
598  ]: ...
599  
600  def binary_repr(num: int, width: None | int = ...) -> str: ...
601  
602  def base_repr(
603      number: SupportsAbs[float],
604      base: float = ...,
605      padding: SupportsIndex = ...,
606  ) -> str: ...
607  
608  @overload
609  def identity(
610      n: int,
611      dtype: None = ...,
612      *,
613      like: _SupportsArrayFunc = ...,
614  ) -> NDArray[float64]: ...
615  @overload
616  def identity(
617      n: int,
618      dtype: _DTypeLike[_SCT],
619      *,
620      like: _SupportsArrayFunc = ...,
621  ) -> NDArray[_SCT]: ...
622  @overload
623  def identity(
624      n: int,
625      dtype: DTypeLike,
626      *,
627      like: _SupportsArrayFunc = ...,
628  ) -> NDArray[Any]: ...
629  
630  def allclose(
631      a: ArrayLike,
632      b: ArrayLike,
633      rtol: float = ...,
634      atol: float = ...,
635      equal_nan: bool = ...,
636  ) -> bool: ...
637  
638  @overload
639  def isclose(
640      a: _ScalarLike_co,
641      b: _ScalarLike_co,
642      rtol: float = ...,
643      atol: float = ...,
644      equal_nan: bool = ...,
645  ) -> bool_: ...
646  @overload
647  def isclose(
648      a: ArrayLike,
649      b: ArrayLike,
650      rtol: float = ...,
651      atol: float = ...,
652      equal_nan: bool = ...,
653  ) -> NDArray[bool_]: ...
654  
655  def array_equal(a1: ArrayLike, a2: ArrayLike, equal_nan: bool = ...) -> bool: ...
656  
657  def array_equiv(a1: ArrayLike, a2: ArrayLike) -> bool: ...