fromnumeric.pyi 44 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735
  1. # ruff: noqa: ANN401
  2. from _typeshed import Incomplete
  3. from collections.abc import Sequence
  4. from typing import (
  5. Any,
  6. Literal,
  7. Never,
  8. Protocol,
  9. SupportsIndex,
  10. TypeAlias,
  11. TypedDict,
  12. TypeVar,
  13. Unpack,
  14. overload,
  15. type_check_only,
  16. )
  17. import numpy as np
  18. from numpy import (
  19. _AnyShapeT,
  20. _CastingKind,
  21. _ModeKind,
  22. _OrderACF,
  23. _OrderKACF,
  24. _PartitionKind,
  25. _SortKind,
  26. _SortSide,
  27. complexfloating,
  28. float16,
  29. floating,
  30. generic,
  31. int64,
  32. int_,
  33. intp,
  34. object_,
  35. timedelta64,
  36. uint64,
  37. )
  38. from numpy._globals import _NoValueType
  39. from numpy._typing import (
  40. ArrayLike,
  41. DTypeLike,
  42. NDArray,
  43. _AnyShape,
  44. _ArrayLike,
  45. _ArrayLikeBool_co,
  46. _ArrayLikeComplex_co,
  47. _ArrayLikeFloat_co,
  48. _ArrayLikeInt,
  49. _ArrayLikeInt_co,
  50. _ArrayLikeObject_co,
  51. _ArrayLikeUInt_co,
  52. _BoolLike_co,
  53. _ComplexLike_co,
  54. _DTypeLike,
  55. _IntLike_co,
  56. _NestedSequence,
  57. _NumberLike_co,
  58. _ScalarLike_co,
  59. _ShapeLike,
  60. )
  61. __all__ = [
  62. "all",
  63. "amax",
  64. "amin",
  65. "any",
  66. "argmax",
  67. "argmin",
  68. "argpartition",
  69. "argsort",
  70. "around",
  71. "choose",
  72. "clip",
  73. "compress",
  74. "cumprod",
  75. "cumsum",
  76. "cumulative_prod",
  77. "cumulative_sum",
  78. "diagonal",
  79. "mean",
  80. "max",
  81. "min",
  82. "matrix_transpose",
  83. "ndim",
  84. "nonzero",
  85. "partition",
  86. "prod",
  87. "ptp",
  88. "put",
  89. "ravel",
  90. "repeat",
  91. "reshape",
  92. "resize",
  93. "round",
  94. "searchsorted",
  95. "shape",
  96. "size",
  97. "sort",
  98. "squeeze",
  99. "std",
  100. "sum",
  101. "swapaxes",
  102. "take",
  103. "trace",
  104. "transpose",
  105. "var",
  106. ]
  107. _ScalarT = TypeVar("_ScalarT", bound=generic)
  108. _NumberOrObjectT = TypeVar("_NumberOrObjectT", bound=np.number | np.object_)
  109. _ArrayT = TypeVar("_ArrayT", bound=np.ndarray[Any, Any])
  110. _ShapeT = TypeVar("_ShapeT", bound=tuple[int, ...])
  111. _ShapeT_co = TypeVar("_ShapeT_co", bound=tuple[int, ...], covariant=True)
  112. _BoolOrIntArrayT = TypeVar("_BoolOrIntArrayT", bound=NDArray[np.integer | np.bool])
  113. @type_check_only
  114. class _SupportsShape(Protocol[_ShapeT_co]):
  115. # NOTE: it matters that `self` is positional only
  116. @property
  117. def shape(self, /) -> _ShapeT_co: ...
  118. @type_check_only
  119. class _UFuncKwargs(TypedDict, total=False):
  120. where: _ArrayLikeBool_co | None
  121. order: _OrderKACF
  122. subok: bool
  123. signature: str | tuple[str | None, ...]
  124. casting: _CastingKind
  125. # a "sequence" that isn't a string, bytes, bytearray, or memoryview
  126. _T = TypeVar("_T")
  127. _PyArray: TypeAlias = list[_T] | tuple[_T, ...]
  128. # `int` also covers `bool`
  129. _PyScalar: TypeAlias = complex | bytes | str
  130. # TODO: Fix overlapping overloads: https://github.com/numpy/numpy/issues/27032
  131. @overload
  132. def take(
  133. a: _ArrayLike[_ScalarT],
  134. indices: _IntLike_co,
  135. axis: None = None,
  136. out: None = None,
  137. mode: _ModeKind = "raise",
  138. ) -> _ScalarT: ...
  139. @overload
  140. def take(
  141. a: ArrayLike,
  142. indices: _IntLike_co,
  143. axis: SupportsIndex | None = None,
  144. out: None = None,
  145. mode: _ModeKind = "raise",
  146. ) -> Any: ...
  147. @overload
  148. def take(
  149. a: _ArrayLike[_ScalarT],
  150. indices: _ArrayLikeInt_co,
  151. axis: SupportsIndex | None = None,
  152. out: None = None,
  153. mode: _ModeKind = "raise",
  154. ) -> NDArray[_ScalarT]: ...
  155. @overload
  156. def take(
  157. a: ArrayLike,
  158. indices: _ArrayLikeInt_co,
  159. axis: SupportsIndex | None = None,
  160. out: None = None,
  161. mode: _ModeKind = "raise",
  162. ) -> NDArray[Any]: ...
  163. @overload
  164. def take(
  165. a: ArrayLike,
  166. indices: _ArrayLikeInt_co,
  167. axis: SupportsIndex | None,
  168. out: _ArrayT,
  169. mode: _ModeKind = "raise",
  170. ) -> _ArrayT: ...
  171. @overload
  172. def take(
  173. a: ArrayLike,
  174. indices: _ArrayLikeInt_co,
  175. axis: SupportsIndex | None = None,
  176. *,
  177. out: _ArrayT,
  178. mode: _ModeKind = "raise",
  179. ) -> _ArrayT: ...
  180. @overload
  181. def reshape( # shape: index
  182. a: _ArrayLike[_ScalarT],
  183. /,
  184. shape: SupportsIndex,
  185. order: _OrderACF = "C",
  186. *,
  187. copy: bool | None = None,
  188. ) -> np.ndarray[tuple[int], np.dtype[_ScalarT]]: ...
  189. @overload
  190. def reshape( # shape: (int, ...) @ _AnyShapeT
  191. a: _ArrayLike[_ScalarT],
  192. /,
  193. shape: _AnyShapeT,
  194. order: _OrderACF = "C",
  195. *,
  196. copy: bool | None = None,
  197. ) -> np.ndarray[_AnyShapeT, np.dtype[_ScalarT]]: ...
  198. @overload # shape: Sequence[index]
  199. def reshape(
  200. a: _ArrayLike[_ScalarT],
  201. /,
  202. shape: Sequence[SupportsIndex],
  203. order: _OrderACF = "C",
  204. *,
  205. copy: bool | None = None,
  206. ) -> NDArray[_ScalarT]: ...
  207. @overload # shape: index
  208. def reshape(
  209. a: ArrayLike,
  210. /,
  211. shape: SupportsIndex,
  212. order: _OrderACF = "C",
  213. *,
  214. copy: bool | None = None,
  215. ) -> np.ndarray[tuple[int], np.dtype]: ...
  216. @overload
  217. def reshape( # shape: (int, ...) @ _AnyShapeT
  218. a: ArrayLike,
  219. /,
  220. shape: _AnyShapeT,
  221. order: _OrderACF = "C",
  222. *,
  223. copy: bool | None = None,
  224. ) -> np.ndarray[_AnyShapeT, np.dtype]: ...
  225. @overload # shape: Sequence[index]
  226. def reshape(
  227. a: ArrayLike,
  228. /,
  229. shape: Sequence[SupportsIndex],
  230. order: _OrderACF = "C",
  231. *,
  232. copy: bool | None = None,
  233. ) -> NDArray[Any]: ...
  234. @overload
  235. def choose(
  236. a: _IntLike_co,
  237. choices: ArrayLike,
  238. out: None = None,
  239. mode: _ModeKind = "raise",
  240. ) -> Any: ...
  241. @overload
  242. def choose(
  243. a: _ArrayLikeInt_co,
  244. choices: _ArrayLike[_ScalarT],
  245. out: None = None,
  246. mode: _ModeKind = "raise",
  247. ) -> NDArray[_ScalarT]: ...
  248. @overload
  249. def choose(
  250. a: _ArrayLikeInt_co,
  251. choices: ArrayLike,
  252. out: None = None,
  253. mode: _ModeKind = "raise",
  254. ) -> NDArray[Any]: ...
  255. @overload
  256. def choose(
  257. a: _ArrayLikeInt_co,
  258. choices: ArrayLike,
  259. out: _ArrayT,
  260. mode: _ModeKind = "raise",
  261. ) -> _ArrayT: ...
  262. # keep in sync with `ma.core.repeat`
  263. @overload
  264. def repeat(
  265. a: _ArrayLike[_ScalarT],
  266. repeats: _ArrayLikeInt_co,
  267. axis: None = None,
  268. ) -> np.ndarray[tuple[int], np.dtype[_ScalarT]]: ...
  269. @overload
  270. def repeat(
  271. a: _ArrayLike[_ScalarT],
  272. repeats: _ArrayLikeInt_co,
  273. axis: SupportsIndex,
  274. ) -> NDArray[_ScalarT]: ...
  275. @overload
  276. def repeat(
  277. a: ArrayLike,
  278. repeats: _ArrayLikeInt_co,
  279. axis: None = None,
  280. ) -> np.ndarray[tuple[int], np.dtype[Any]]: ...
  281. @overload
  282. def repeat(
  283. a: ArrayLike,
  284. repeats: _ArrayLikeInt_co,
  285. axis: SupportsIndex,
  286. ) -> NDArray[Any]: ...
  287. #
  288. def put(
  289. a: NDArray[Any],
  290. ind: _ArrayLikeInt_co,
  291. v: ArrayLike,
  292. mode: _ModeKind = "raise",
  293. ) -> None: ...
  294. # keep in sync with `ndarray.swapaxes` and `ma.core.swapaxes`
  295. @overload
  296. def swapaxes(a: _ArrayT, axis1: SupportsIndex, axis2: SupportsIndex) -> _ArrayT: ...
  297. @overload
  298. def swapaxes(a: _ArrayLike[_ScalarT], axis1: SupportsIndex, axis2: SupportsIndex) -> NDArray[_ScalarT]: ...
  299. @overload
  300. def swapaxes(a: ArrayLike, axis1: SupportsIndex, axis2: SupportsIndex) -> NDArray[Any]: ...
  301. @overload
  302. def transpose(
  303. a: _ArrayLike[_ScalarT],
  304. axes: _ShapeLike | None = None,
  305. ) -> NDArray[_ScalarT]: ...
  306. @overload
  307. def transpose(
  308. a: ArrayLike,
  309. axes: _ShapeLike | None = None,
  310. ) -> NDArray[Any]: ...
  311. @overload
  312. def matrix_transpose(x: _ArrayLike[_ScalarT], /) -> NDArray[_ScalarT]: ...
  313. @overload
  314. def matrix_transpose(x: ArrayLike, /) -> NDArray[Any]: ...
  315. #
  316. @overload
  317. def partition(
  318. a: _ArrayLike[_ScalarT],
  319. kth: _ArrayLikeInt,
  320. axis: SupportsIndex | None = -1,
  321. kind: _PartitionKind = "introselect",
  322. order: None = None,
  323. ) -> NDArray[_ScalarT]: ...
  324. @overload
  325. def partition(
  326. a: _ArrayLike[np.void],
  327. kth: _ArrayLikeInt,
  328. axis: SupportsIndex | None = -1,
  329. kind: _PartitionKind = "introselect",
  330. order: str | Sequence[str] | None = None,
  331. ) -> NDArray[np.void]: ...
  332. @overload
  333. def partition(
  334. a: ArrayLike,
  335. kth: _ArrayLikeInt,
  336. axis: SupportsIndex | None = -1,
  337. kind: _PartitionKind = "introselect",
  338. order: str | Sequence[str] | None = None,
  339. ) -> NDArray[Any]: ...
  340. #
  341. def argpartition(
  342. a: ArrayLike,
  343. kth: _ArrayLikeInt,
  344. axis: SupportsIndex | None = -1,
  345. kind: _PartitionKind = "introselect",
  346. order: str | Sequence[str] | None = None,
  347. ) -> NDArray[intp]: ...
  348. #
  349. @overload
  350. def sort(
  351. a: _ArrayLike[_ScalarT],
  352. axis: SupportsIndex | None = -1,
  353. kind: _SortKind | None = None,
  354. order: str | Sequence[str] | None = None,
  355. *,
  356. stable: bool | None = None,
  357. ) -> NDArray[_ScalarT]: ...
  358. @overload
  359. def sort(
  360. a: ArrayLike,
  361. axis: SupportsIndex | None = -1,
  362. kind: _SortKind | None = None,
  363. order: str | Sequence[str] | None = None,
  364. *,
  365. stable: bool | None = None,
  366. ) -> NDArray[Any]: ...
  367. def argsort(
  368. a: ArrayLike,
  369. axis: SupportsIndex | None = -1,
  370. kind: _SortKind | None = None,
  371. order: str | Sequence[str] | None = None,
  372. *,
  373. stable: bool | None = None,
  374. ) -> NDArray[intp]: ...
  375. @overload
  376. def argmax(
  377. a: ArrayLike,
  378. axis: None = None,
  379. out: None = None,
  380. *,
  381. keepdims: Literal[False] | _NoValueType = ...,
  382. ) -> intp: ...
  383. @overload
  384. def argmax(
  385. a: ArrayLike,
  386. axis: SupportsIndex | None = None,
  387. out: None = None,
  388. *,
  389. keepdims: bool | _NoValueType = ...,
  390. ) -> Any: ...
  391. @overload
  392. def argmax(
  393. a: ArrayLike,
  394. axis: SupportsIndex | None,
  395. out: _BoolOrIntArrayT,
  396. *,
  397. keepdims: bool | _NoValueType = ...,
  398. ) -> _BoolOrIntArrayT: ...
  399. @overload
  400. def argmax(
  401. a: ArrayLike,
  402. axis: SupportsIndex | None = None,
  403. *,
  404. out: _BoolOrIntArrayT,
  405. keepdims: bool | _NoValueType = ...,
  406. ) -> _BoolOrIntArrayT: ...
  407. @overload
  408. def argmin(
  409. a: ArrayLike,
  410. axis: None = None,
  411. out: None = None,
  412. *,
  413. keepdims: Literal[False] | _NoValueType = ...,
  414. ) -> intp: ...
  415. @overload
  416. def argmin(
  417. a: ArrayLike,
  418. axis: SupportsIndex | None = None,
  419. out: None = None,
  420. *,
  421. keepdims: bool | _NoValueType = ...,
  422. ) -> Any: ...
  423. @overload
  424. def argmin(
  425. a: ArrayLike,
  426. axis: SupportsIndex | None,
  427. out: _BoolOrIntArrayT,
  428. *,
  429. keepdims: bool | _NoValueType = ...,
  430. ) -> _BoolOrIntArrayT: ...
  431. @overload
  432. def argmin(
  433. a: ArrayLike,
  434. axis: SupportsIndex | None = None,
  435. *,
  436. out: _BoolOrIntArrayT,
  437. keepdims: bool | _NoValueType = ...,
  438. ) -> _BoolOrIntArrayT: ...
  439. # TODO: Fix overlapping overloads: https://github.com/numpy/numpy/issues/27032
  440. @overload
  441. def searchsorted(
  442. a: ArrayLike,
  443. v: _ScalarLike_co,
  444. side: _SortSide = "left",
  445. sorter: _ArrayLikeInt_co | None = None, # 1D int array
  446. ) -> intp: ...
  447. @overload
  448. def searchsorted(
  449. a: ArrayLike,
  450. v: ArrayLike,
  451. side: _SortSide = "left",
  452. sorter: _ArrayLikeInt_co | None = None, # 1D int array
  453. ) -> NDArray[intp]: ...
  454. # TODO: Fix overlapping overloads: https://github.com/numpy/numpy/issues/27032
  455. @overload
  456. def resize(a: _ArrayLike[_ScalarT], new_shape: SupportsIndex | tuple[SupportsIndex]) -> np.ndarray[tuple[int], np.dtype[_ScalarT]]: ...
  457. @overload
  458. def resize(a: _ArrayLike[_ScalarT], new_shape: _AnyShapeT) -> np.ndarray[_AnyShapeT, np.dtype[_ScalarT]]: ...
  459. @overload
  460. def resize(a: _ArrayLike[_ScalarT], new_shape: _ShapeLike) -> NDArray[_ScalarT]: ...
  461. @overload
  462. def resize(a: ArrayLike, new_shape: SupportsIndex | tuple[SupportsIndex]) -> np.ndarray[tuple[int], np.dtype]: ...
  463. @overload
  464. def resize(a: ArrayLike, new_shape: _AnyShapeT) -> np.ndarray[_AnyShapeT, np.dtype]: ...
  465. @overload
  466. def resize(a: ArrayLike, new_shape: _ShapeLike) -> NDArray[Any]: ...
  467. # TODO: Fix overlapping overloads: https://github.com/numpy/numpy/issues/27032
  468. @overload
  469. def squeeze(
  470. a: _ScalarT,
  471. axis: _ShapeLike | None = None,
  472. ) -> _ScalarT: ...
  473. @overload
  474. def squeeze(
  475. a: _ArrayLike[_ScalarT],
  476. axis: _ShapeLike | None = None,
  477. ) -> NDArray[_ScalarT]: ...
  478. @overload
  479. def squeeze(
  480. a: ArrayLike,
  481. axis: _ShapeLike | None = None,
  482. ) -> NDArray[Any]: ...
  483. # keep in sync with `ma.core.diagonal`
  484. @overload
  485. def diagonal(
  486. a: _ArrayLike[_ScalarT],
  487. offset: SupportsIndex = 0,
  488. axis1: SupportsIndex = 0,
  489. axis2: SupportsIndex = 1, # >= 2D array
  490. ) -> NDArray[_ScalarT]: ...
  491. @overload
  492. def diagonal(
  493. a: ArrayLike,
  494. offset: SupportsIndex = 0,
  495. axis1: SupportsIndex = 0,
  496. axis2: SupportsIndex = 1, # >= 2D array
  497. ) -> NDArray[Any]: ...
  498. # keep in sync with `ma.core.trace`
  499. @overload
  500. def trace(
  501. a: ArrayLike, # >= 2D array
  502. offset: SupportsIndex = 0,
  503. axis1: SupportsIndex = 0,
  504. axis2: SupportsIndex = 1,
  505. dtype: DTypeLike | None = None,
  506. out: None = None,
  507. ) -> Any: ...
  508. @overload
  509. def trace(
  510. a: ArrayLike, # >= 2D array
  511. offset: SupportsIndex,
  512. axis1: SupportsIndex,
  513. axis2: SupportsIndex,
  514. dtype: DTypeLike | None,
  515. out: _ArrayT,
  516. ) -> _ArrayT: ...
  517. @overload
  518. def trace(
  519. a: ArrayLike, # >= 2D array
  520. offset: SupportsIndex = 0,
  521. axis1: SupportsIndex = 0,
  522. axis2: SupportsIndex = 1,
  523. dtype: DTypeLike | None = None,
  524. *,
  525. out: _ArrayT,
  526. ) -> _ArrayT: ...
  527. _Array1D: TypeAlias = np.ndarray[tuple[int], np.dtype[_ScalarT]]
  528. @overload
  529. def ravel(a: _ArrayLike[_ScalarT], order: _OrderKACF = "C") -> _Array1D[_ScalarT]: ...
  530. @overload
  531. def ravel(a: bytes | _NestedSequence[bytes], order: _OrderKACF = "C") -> _Array1D[np.bytes_]: ...
  532. @overload
  533. def ravel(a: str | _NestedSequence[str], order: _OrderKACF = "C") -> _Array1D[np.str_]: ...
  534. @overload
  535. def ravel(a: bool | _NestedSequence[bool], order: _OrderKACF = "C") -> _Array1D[np.bool]: ...
  536. @overload
  537. def ravel(a: int | _NestedSequence[int], order: _OrderKACF = "C") -> _Array1D[np.int_ | Any]: ...
  538. @overload
  539. def ravel(a: float | _NestedSequence[float], order: _OrderKACF = "C") -> _Array1D[np.float64 | Any]: ...
  540. @overload
  541. def ravel(a: complex | _NestedSequence[complex], order: _OrderKACF = "C") -> _Array1D[np.complex128 | Any]: ...
  542. @overload
  543. def ravel(a: ArrayLike, order: _OrderKACF = "C") -> np.ndarray[tuple[int], np.dtype]: ...
  544. def nonzero(a: _ArrayLike[Any]) -> tuple[np.ndarray[tuple[int], np.dtype[intp]], ...]: ...
  545. # this prevents `Any` from being returned with Pyright
  546. @overload
  547. def shape(a: _SupportsShape[Never]) -> _AnyShape: ...
  548. @overload
  549. def shape(a: _SupportsShape[_ShapeT]) -> _ShapeT: ...
  550. @overload
  551. def shape(a: _PyScalar) -> tuple[()]: ...
  552. # `collections.abc.Sequence` can't be used hesre, since `bytes` and `str` are
  553. # subtypes of it, which would make the return types incompatible.
  554. @overload
  555. def shape(a: _PyArray[_PyScalar]) -> tuple[int]: ...
  556. @overload
  557. def shape(a: _PyArray[_PyArray[_PyScalar]]) -> tuple[int, int]: ...
  558. # this overload will be skipped by typecheckers that don't support PEP 688
  559. @overload
  560. def shape(a: memoryview | bytearray) -> tuple[int]: ...
  561. @overload
  562. def shape(a: ArrayLike) -> _AnyShape: ...
  563. @overload
  564. def compress(
  565. condition: _ArrayLikeBool_co, # 1D bool array
  566. a: _ArrayLike[_ScalarT],
  567. axis: SupportsIndex | None = None,
  568. out: None = None,
  569. ) -> NDArray[_ScalarT]: ...
  570. @overload
  571. def compress(
  572. condition: _ArrayLikeBool_co, # 1D bool array
  573. a: ArrayLike,
  574. axis: SupportsIndex | None = None,
  575. out: None = None,
  576. ) -> NDArray[Any]: ...
  577. @overload
  578. def compress(
  579. condition: _ArrayLikeBool_co, # 1D bool array
  580. a: ArrayLike,
  581. axis: SupportsIndex | None,
  582. out: _ArrayT,
  583. ) -> _ArrayT: ...
  584. @overload
  585. def compress(
  586. condition: _ArrayLikeBool_co, # 1D bool array
  587. a: ArrayLike,
  588. axis: SupportsIndex | None = None,
  589. *,
  590. out: _ArrayT,
  591. ) -> _ArrayT: ...
  592. # TODO: Fix overlapping overloads: https://github.com/numpy/numpy/issues/27032
  593. @overload
  594. def clip(
  595. a: _ScalarT,
  596. a_min: ArrayLike | _NoValueType | None = ...,
  597. a_max: ArrayLike | _NoValueType | None = ...,
  598. out: None = None,
  599. *,
  600. min: ArrayLike | _NoValueType | None = ...,
  601. max: ArrayLike | _NoValueType | None = ...,
  602. dtype: None = None,
  603. **kwargs: Unpack[_UFuncKwargs],
  604. ) -> _ScalarT: ...
  605. @overload
  606. def clip(
  607. a: _ScalarLike_co,
  608. a_min: ArrayLike | _NoValueType | None = ...,
  609. a_max: ArrayLike | _NoValueType | None = ...,
  610. out: None = None,
  611. *,
  612. min: ArrayLike | _NoValueType | None = ...,
  613. max: ArrayLike | _NoValueType | None = ...,
  614. dtype: None = None,
  615. **kwargs: Unpack[_UFuncKwargs],
  616. ) -> Any: ...
  617. @overload
  618. def clip(
  619. a: _ArrayLike[_ScalarT],
  620. a_min: ArrayLike | _NoValueType | None = ...,
  621. a_max: ArrayLike | _NoValueType | None = ...,
  622. out: None = None,
  623. *,
  624. min: ArrayLike | _NoValueType | None = ...,
  625. max: ArrayLike | _NoValueType | None = ...,
  626. dtype: None = None,
  627. **kwargs: Unpack[_UFuncKwargs],
  628. ) -> NDArray[_ScalarT]: ...
  629. @overload
  630. def clip(
  631. a: ArrayLike,
  632. a_min: ArrayLike | _NoValueType | None = ...,
  633. a_max: ArrayLike | _NoValueType | None = ...,
  634. out: None = None,
  635. *,
  636. min: ArrayLike | _NoValueType | None = ...,
  637. max: ArrayLike | _NoValueType | None = ...,
  638. dtype: None = None,
  639. **kwargs: Unpack[_UFuncKwargs],
  640. ) -> NDArray[Any]: ...
  641. @overload
  642. def clip(
  643. a: ArrayLike,
  644. a_min: ArrayLike | None,
  645. a_max: ArrayLike | None,
  646. out: _ArrayT,
  647. *,
  648. min: ArrayLike | _NoValueType | None = ...,
  649. max: ArrayLike | _NoValueType | None = ...,
  650. dtype: DTypeLike | None = None,
  651. **kwargs: Unpack[_UFuncKwargs],
  652. ) -> _ArrayT: ...
  653. @overload
  654. def clip(
  655. a: ArrayLike,
  656. a_min: ArrayLike | _NoValueType | None = ...,
  657. a_max: ArrayLike | _NoValueType | None = ...,
  658. *,
  659. out: _ArrayT,
  660. min: ArrayLike | _NoValueType | None = ...,
  661. max: ArrayLike | _NoValueType | None = ...,
  662. dtype: DTypeLike | None = None,
  663. **kwargs: Unpack[_UFuncKwargs],
  664. ) -> _ArrayT: ...
  665. @overload
  666. def clip(
  667. a: ArrayLike,
  668. a_min: ArrayLike | _NoValueType | None = ...,
  669. a_max: ArrayLike | _NoValueType | None = ...,
  670. out: None = None,
  671. *,
  672. min: ArrayLike | _NoValueType | None = ...,
  673. max: ArrayLike | _NoValueType | None = ...,
  674. dtype: DTypeLike | None = None,
  675. **kwargs: Unpack[_UFuncKwargs],
  676. ) -> Any: ...
  677. @overload
  678. def sum(
  679. a: _ArrayLike[_ScalarT],
  680. axis: None = None,
  681. dtype: None = None,
  682. out: None = None,
  683. keepdims: Literal[False] | _NoValueType = ...,
  684. initial: _NumberLike_co | _NoValueType = ...,
  685. where: _ArrayLikeBool_co | _NoValueType = ...,
  686. ) -> _ScalarT: ...
  687. @overload
  688. def sum(
  689. a: _ArrayLike[_ScalarT],
  690. axis: None = None,
  691. dtype: None = None,
  692. out: None = None,
  693. keepdims: bool | _NoValueType = ...,
  694. initial: _NumberLike_co | _NoValueType = ...,
  695. where: _ArrayLikeBool_co | _NoValueType = ...,
  696. ) -> _ScalarT | NDArray[_ScalarT]: ...
  697. @overload
  698. def sum(
  699. a: ArrayLike,
  700. axis: None,
  701. dtype: _DTypeLike[_ScalarT],
  702. out: None = None,
  703. keepdims: Literal[False] | _NoValueType = ...,
  704. initial: _NumberLike_co | _NoValueType = ...,
  705. where: _ArrayLikeBool_co | _NoValueType = ...,
  706. ) -> _ScalarT: ...
  707. @overload
  708. def sum(
  709. a: ArrayLike,
  710. axis: None = None,
  711. *,
  712. dtype: _DTypeLike[_ScalarT],
  713. out: None = None,
  714. keepdims: Literal[False] | _NoValueType = ...,
  715. initial: _NumberLike_co | _NoValueType = ...,
  716. where: _ArrayLikeBool_co | _NoValueType = ...,
  717. ) -> _ScalarT: ...
  718. @overload
  719. def sum(
  720. a: ArrayLike,
  721. axis: _ShapeLike | None,
  722. dtype: _DTypeLike[_ScalarT],
  723. out: None = None,
  724. keepdims: bool | _NoValueType = ...,
  725. initial: _NumberLike_co | _NoValueType = ...,
  726. where: _ArrayLikeBool_co | _NoValueType = ...,
  727. ) -> _ScalarT | NDArray[_ScalarT]: ...
  728. @overload
  729. def sum(
  730. a: ArrayLike,
  731. axis: _ShapeLike | None = None,
  732. *,
  733. dtype: _DTypeLike[_ScalarT],
  734. out: None = None,
  735. keepdims: bool | _NoValueType = ...,
  736. initial: _NumberLike_co | _NoValueType = ...,
  737. where: _ArrayLikeBool_co | _NoValueType = ...,
  738. ) -> _ScalarT | NDArray[_ScalarT]: ...
  739. @overload
  740. def sum(
  741. a: ArrayLike,
  742. axis: _ShapeLike | None = None,
  743. dtype: DTypeLike | None = None,
  744. out: None = None,
  745. keepdims: bool | _NoValueType = ...,
  746. initial: _NumberLike_co | _NoValueType = ...,
  747. where: _ArrayLikeBool_co | _NoValueType = ...,
  748. ) -> Any: ...
  749. @overload
  750. def sum(
  751. a: ArrayLike,
  752. axis: _ShapeLike | None,
  753. dtype: DTypeLike | None,
  754. out: _ArrayT,
  755. keepdims: bool | _NoValueType = ...,
  756. initial: _NumberLike_co | _NoValueType = ...,
  757. where: _ArrayLikeBool_co | _NoValueType = ...,
  758. ) -> _ArrayT: ...
  759. @overload
  760. def sum(
  761. a: ArrayLike,
  762. axis: _ShapeLike | None = None,
  763. dtype: DTypeLike | None = None,
  764. *,
  765. out: _ArrayT,
  766. keepdims: bool | _NoValueType = ...,
  767. initial: _NumberLike_co | _NoValueType = ...,
  768. where: _ArrayLikeBool_co | _NoValueType = ...,
  769. ) -> _ArrayT: ...
  770. # keep in sync with `any`
  771. @overload
  772. def all(
  773. a: ArrayLike | None,
  774. axis: None = None,
  775. out: None = None,
  776. keepdims: Literal[False, 0] | _NoValueType = ...,
  777. *,
  778. where: _ArrayLikeBool_co | _NoValueType = ...,
  779. ) -> np.bool: ...
  780. @overload
  781. def all(
  782. a: ArrayLike | None,
  783. axis: int | tuple[int, ...] | None = None,
  784. out: None = None,
  785. keepdims: _BoolLike_co | _NoValueType = ...,
  786. *,
  787. where: _ArrayLikeBool_co | _NoValueType = ...,
  788. ) -> Incomplete: ...
  789. @overload
  790. def all(
  791. a: ArrayLike | None,
  792. axis: int | tuple[int, ...] | None,
  793. out: _ArrayT,
  794. keepdims: _BoolLike_co | _NoValueType = ...,
  795. *,
  796. where: _ArrayLikeBool_co | _NoValueType = ...,
  797. ) -> _ArrayT: ...
  798. @overload
  799. def all(
  800. a: ArrayLike | None,
  801. axis: int | tuple[int, ...] | None = None,
  802. *,
  803. out: _ArrayT,
  804. keepdims: _BoolLike_co | _NoValueType = ...,
  805. where: _ArrayLikeBool_co | _NoValueType = ...,
  806. ) -> _ArrayT: ...
  807. # keep in sync with `all`
  808. @overload
  809. def any(
  810. a: ArrayLike | None,
  811. axis: None = None,
  812. out: None = None,
  813. keepdims: Literal[False, 0] | _NoValueType = ...,
  814. *,
  815. where: _ArrayLikeBool_co | _NoValueType = ...,
  816. ) -> np.bool: ...
  817. @overload
  818. def any(
  819. a: ArrayLike | None,
  820. axis: int | tuple[int, ...] | None = None,
  821. out: None = None,
  822. keepdims: _BoolLike_co | _NoValueType = ...,
  823. *,
  824. where: _ArrayLikeBool_co | _NoValueType = ...,
  825. ) -> Incomplete: ...
  826. @overload
  827. def any(
  828. a: ArrayLike | None,
  829. axis: int | tuple[int, ...] | None,
  830. out: _ArrayT,
  831. keepdims: _BoolLike_co | _NoValueType = ...,
  832. *,
  833. where: _ArrayLikeBool_co | _NoValueType = ...,
  834. ) -> _ArrayT: ...
  835. @overload
  836. def any(
  837. a: ArrayLike | None,
  838. axis: int | tuple[int, ...] | None = None,
  839. *,
  840. out: _ArrayT,
  841. keepdims: _BoolLike_co | _NoValueType = ...,
  842. where: _ArrayLikeBool_co | _NoValueType = ...,
  843. ) -> _ArrayT: ...
  844. #
  845. @overload
  846. def cumsum(
  847. a: _ArrayLike[_ScalarT],
  848. axis: SupportsIndex | None = None,
  849. dtype: None = None,
  850. out: None = None,
  851. ) -> NDArray[_ScalarT]: ...
  852. @overload
  853. def cumsum(
  854. a: ArrayLike,
  855. axis: SupportsIndex | None = None,
  856. dtype: None = None,
  857. out: None = None,
  858. ) -> NDArray[Any]: ...
  859. @overload
  860. def cumsum(
  861. a: ArrayLike,
  862. axis: SupportsIndex | None,
  863. dtype: _DTypeLike[_ScalarT],
  864. out: None = None,
  865. ) -> NDArray[_ScalarT]: ...
  866. @overload
  867. def cumsum(
  868. a: ArrayLike,
  869. axis: SupportsIndex | None = None,
  870. *,
  871. dtype: _DTypeLike[_ScalarT],
  872. out: None = None,
  873. ) -> NDArray[_ScalarT]: ...
  874. @overload
  875. def cumsum(
  876. a: ArrayLike,
  877. axis: SupportsIndex | None = None,
  878. dtype: DTypeLike | None = None,
  879. out: None = None,
  880. ) -> NDArray[Any]: ...
  881. @overload
  882. def cumsum(
  883. a: ArrayLike,
  884. axis: SupportsIndex | None,
  885. dtype: DTypeLike | None,
  886. out: _ArrayT,
  887. ) -> _ArrayT: ...
  888. @overload
  889. def cumsum(
  890. a: ArrayLike,
  891. axis: SupportsIndex | None = None,
  892. dtype: DTypeLike | None = None,
  893. *,
  894. out: _ArrayT,
  895. ) -> _ArrayT: ...
  896. @overload
  897. def cumulative_sum(
  898. x: _ArrayLike[_ScalarT],
  899. /,
  900. *,
  901. axis: SupportsIndex | None = None,
  902. dtype: None = None,
  903. out: None = None,
  904. include_initial: bool = False,
  905. ) -> NDArray[_ScalarT]: ...
  906. @overload
  907. def cumulative_sum(
  908. x: ArrayLike,
  909. /,
  910. *,
  911. axis: SupportsIndex | None = None,
  912. dtype: None = None,
  913. out: None = None,
  914. include_initial: bool = False,
  915. ) -> NDArray[Any]: ...
  916. @overload
  917. def cumulative_sum(
  918. x: ArrayLike,
  919. /,
  920. *,
  921. axis: SupportsIndex | None = None,
  922. dtype: _DTypeLike[_ScalarT],
  923. out: None = None,
  924. include_initial: bool = False,
  925. ) -> NDArray[_ScalarT]: ...
  926. @overload
  927. def cumulative_sum(
  928. x: ArrayLike,
  929. /,
  930. *,
  931. axis: SupportsIndex | None = None,
  932. dtype: DTypeLike | None = None,
  933. out: None = None,
  934. include_initial: bool = False,
  935. ) -> NDArray[Any]: ...
  936. @overload
  937. def cumulative_sum(
  938. x: ArrayLike,
  939. /,
  940. *,
  941. axis: SupportsIndex | None = None,
  942. dtype: DTypeLike | None = None,
  943. out: _ArrayT,
  944. include_initial: bool = False,
  945. ) -> _ArrayT: ...
  946. @overload
  947. def ptp(
  948. a: _ArrayLike[_ScalarT],
  949. axis: None = None,
  950. out: None = None,
  951. keepdims: Literal[False] | _NoValueType = ...,
  952. ) -> _ScalarT: ...
  953. @overload
  954. def ptp(
  955. a: ArrayLike,
  956. axis: _ShapeLike | None = None,
  957. out: None = None,
  958. keepdims: bool | _NoValueType = ...,
  959. ) -> Any: ...
  960. @overload
  961. def ptp(
  962. a: ArrayLike,
  963. axis: _ShapeLike | None,
  964. out: _ArrayT,
  965. keepdims: bool | _NoValueType = ...,
  966. ) -> _ArrayT: ...
  967. @overload
  968. def ptp(
  969. a: ArrayLike,
  970. axis: _ShapeLike | None = None,
  971. *,
  972. out: _ArrayT,
  973. keepdims: bool | _NoValueType = ...,
  974. ) -> _ArrayT: ...
  975. @overload
  976. def amax(
  977. a: _ArrayLike[_ScalarT],
  978. axis: None = None,
  979. out: None = None,
  980. keepdims: Literal[False] | _NoValueType = ...,
  981. initial: _NumberLike_co | _NoValueType = ...,
  982. where: _ArrayLikeBool_co | _NoValueType = ...,
  983. ) -> _ScalarT: ...
  984. @overload
  985. def amax(
  986. a: ArrayLike,
  987. axis: _ShapeLike | None = None,
  988. out: None = None,
  989. keepdims: bool | _NoValueType = ...,
  990. initial: _NumberLike_co | _NoValueType = ...,
  991. where: _ArrayLikeBool_co | _NoValueType = ...,
  992. ) -> Any: ...
  993. @overload
  994. def amax(
  995. a: ArrayLike,
  996. axis: _ShapeLike | None,
  997. out: _ArrayT,
  998. keepdims: bool | _NoValueType = ...,
  999. initial: _NumberLike_co | _NoValueType = ...,
  1000. where: _ArrayLikeBool_co | _NoValueType = ...,
  1001. ) -> _ArrayT: ...
  1002. @overload
  1003. def amax(
  1004. a: ArrayLike,
  1005. axis: _ShapeLike | None = None,
  1006. *,
  1007. out: _ArrayT,
  1008. keepdims: bool | _NoValueType = ...,
  1009. initial: _NumberLike_co | _NoValueType = ...,
  1010. where: _ArrayLikeBool_co | _NoValueType = ...,
  1011. ) -> _ArrayT: ...
  1012. @overload
  1013. def amin(
  1014. a: _ArrayLike[_ScalarT],
  1015. axis: None = None,
  1016. out: None = None,
  1017. keepdims: Literal[False] | _NoValueType = ...,
  1018. initial: _NumberLike_co | _NoValueType = ...,
  1019. where: _ArrayLikeBool_co | _NoValueType = ...,
  1020. ) -> _ScalarT: ...
  1021. @overload
  1022. def amin(
  1023. a: ArrayLike,
  1024. axis: _ShapeLike | None = None,
  1025. out: None = None,
  1026. keepdims: bool | _NoValueType = ...,
  1027. initial: _NumberLike_co | _NoValueType = ...,
  1028. where: _ArrayLikeBool_co | _NoValueType = ...,
  1029. ) -> Any: ...
  1030. @overload
  1031. def amin(
  1032. a: ArrayLike,
  1033. axis: _ShapeLike | None,
  1034. out: _ArrayT,
  1035. keepdims: bool | _NoValueType = ...,
  1036. initial: _NumberLike_co | _NoValueType = ...,
  1037. where: _ArrayLikeBool_co | _NoValueType = ...,
  1038. ) -> _ArrayT: ...
  1039. @overload
  1040. def amin(
  1041. a: ArrayLike,
  1042. axis: _ShapeLike | None = None,
  1043. *,
  1044. out: _ArrayT,
  1045. keepdims: bool | _NoValueType = ...,
  1046. initial: _NumberLike_co | _NoValueType = ...,
  1047. where: _ArrayLikeBool_co | _NoValueType = ...,
  1048. ) -> _ArrayT: ...
  1049. # TODO: `np.prod()``: For object arrays `initial` does not necessarily
  1050. # have to be a numerical scalar.
  1051. # The only requirement is that it is compatible
  1052. # with the `.__mul__()` method(s) of the passed array's elements.
  1053. # Note that the same situation holds for all wrappers around
  1054. # `np.ufunc.reduce`, e.g. `np.sum()` (`.__add__()`).
  1055. # TODO: Fix overlapping overloads: https://github.com/numpy/numpy/issues/27032
  1056. @overload
  1057. def prod(
  1058. a: _ArrayLikeBool_co,
  1059. axis: None = None,
  1060. dtype: None = None,
  1061. out: None = None,
  1062. keepdims: Literal[False] | _NoValueType = ...,
  1063. initial: _NumberLike_co | _NoValueType = ...,
  1064. where: _ArrayLikeBool_co | _NoValueType = ...,
  1065. ) -> int_: ...
  1066. @overload
  1067. def prod(
  1068. a: _ArrayLikeUInt_co,
  1069. axis: None = None,
  1070. dtype: None = None,
  1071. out: None = None,
  1072. keepdims: Literal[False] | _NoValueType = ...,
  1073. initial: _NumberLike_co | _NoValueType = ...,
  1074. where: _ArrayLikeBool_co | _NoValueType = ...,
  1075. ) -> uint64: ...
  1076. @overload
  1077. def prod(
  1078. a: _ArrayLikeInt_co,
  1079. axis: None = None,
  1080. dtype: None = None,
  1081. out: None = None,
  1082. keepdims: Literal[False] | _NoValueType = ...,
  1083. initial: _NumberLike_co | _NoValueType = ...,
  1084. where: _ArrayLikeBool_co | _NoValueType = ...,
  1085. ) -> int64: ...
  1086. @overload
  1087. def prod(
  1088. a: _ArrayLikeFloat_co,
  1089. axis: None = None,
  1090. dtype: None = None,
  1091. out: None = None,
  1092. keepdims: Literal[False] | _NoValueType = ...,
  1093. initial: _NumberLike_co | _NoValueType = ...,
  1094. where: _ArrayLikeBool_co | _NoValueType = ...,
  1095. ) -> floating: ...
  1096. @overload
  1097. def prod(
  1098. a: _ArrayLikeComplex_co,
  1099. axis: None = None,
  1100. dtype: None = None,
  1101. out: None = None,
  1102. keepdims: Literal[False] | _NoValueType = ...,
  1103. initial: _NumberLike_co | _NoValueType = ...,
  1104. where: _ArrayLikeBool_co | _NoValueType = ...,
  1105. ) -> complexfloating: ...
  1106. @overload
  1107. def prod(
  1108. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1109. axis: _ShapeLike | None = None,
  1110. dtype: None = None,
  1111. out: None = None,
  1112. keepdims: bool | _NoValueType = ...,
  1113. initial: _NumberLike_co | _NoValueType = ...,
  1114. where: _ArrayLikeBool_co | _NoValueType = ...,
  1115. ) -> Any: ...
  1116. @overload
  1117. def prod(
  1118. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1119. axis: None,
  1120. dtype: _DTypeLike[_ScalarT],
  1121. out: None = None,
  1122. keepdims: Literal[False] | _NoValueType = ...,
  1123. initial: _NumberLike_co | _NoValueType = ...,
  1124. where: _ArrayLikeBool_co | _NoValueType = ...,
  1125. ) -> _ScalarT: ...
  1126. @overload
  1127. def prod(
  1128. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1129. axis: None = None,
  1130. *,
  1131. dtype: _DTypeLike[_ScalarT],
  1132. out: None = None,
  1133. keepdims: Literal[False] | _NoValueType = ...,
  1134. initial: _NumberLike_co | _NoValueType = ...,
  1135. where: _ArrayLikeBool_co | _NoValueType = ...,
  1136. ) -> _ScalarT: ...
  1137. @overload
  1138. def prod(
  1139. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1140. axis: _ShapeLike | None = None,
  1141. dtype: DTypeLike | None = None,
  1142. out: None = None,
  1143. keepdims: bool | _NoValueType = ...,
  1144. initial: _NumberLike_co | _NoValueType = ...,
  1145. where: _ArrayLikeBool_co | _NoValueType = ...,
  1146. ) -> Any: ...
  1147. @overload
  1148. def prod(
  1149. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1150. axis: _ShapeLike | None,
  1151. dtype: DTypeLike | None,
  1152. out: _ArrayT,
  1153. keepdims: bool | _NoValueType = ...,
  1154. initial: _NumberLike_co | _NoValueType = ...,
  1155. where: _ArrayLikeBool_co | _NoValueType = ...,
  1156. ) -> _ArrayT: ...
  1157. @overload
  1158. def prod(
  1159. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1160. axis: _ShapeLike | None = None,
  1161. dtype: DTypeLike | None = None,
  1162. *,
  1163. out: _ArrayT,
  1164. keepdims: bool | _NoValueType = ...,
  1165. initial: _NumberLike_co | _NoValueType = ...,
  1166. where: _ArrayLikeBool_co | _NoValueType = ...,
  1167. ) -> _ArrayT: ...
  1168. # TODO: Fix overlapping overloads: https://github.com/numpy/numpy/issues/27032
  1169. @overload
  1170. def cumprod(
  1171. a: _ArrayLikeBool_co,
  1172. axis: SupportsIndex | None = None,
  1173. dtype: None = None,
  1174. out: None = None,
  1175. ) -> NDArray[int_]: ...
  1176. @overload
  1177. def cumprod(
  1178. a: _ArrayLikeUInt_co,
  1179. axis: SupportsIndex | None = None,
  1180. dtype: None = None,
  1181. out: None = None,
  1182. ) -> NDArray[uint64]: ...
  1183. @overload
  1184. def cumprod(
  1185. a: _ArrayLikeInt_co,
  1186. axis: SupportsIndex | None = None,
  1187. dtype: None = None,
  1188. out: None = None,
  1189. ) -> NDArray[int64]: ...
  1190. @overload
  1191. def cumprod(
  1192. a: _ArrayLikeFloat_co,
  1193. axis: SupportsIndex | None = None,
  1194. dtype: None = None,
  1195. out: None = None,
  1196. ) -> NDArray[floating]: ...
  1197. @overload
  1198. def cumprod(
  1199. a: _ArrayLikeComplex_co,
  1200. axis: SupportsIndex | None = None,
  1201. dtype: None = None,
  1202. out: None = None,
  1203. ) -> NDArray[complexfloating]: ...
  1204. @overload
  1205. def cumprod(
  1206. a: _ArrayLikeObject_co,
  1207. axis: SupportsIndex | None = None,
  1208. dtype: None = None,
  1209. out: None = None,
  1210. ) -> NDArray[object_]: ...
  1211. @overload
  1212. def cumprod(
  1213. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1214. axis: SupportsIndex | None,
  1215. dtype: _DTypeLike[_ScalarT],
  1216. out: None = None,
  1217. ) -> NDArray[_ScalarT]: ...
  1218. @overload
  1219. def cumprod(
  1220. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1221. axis: SupportsIndex | None = None,
  1222. *,
  1223. dtype: _DTypeLike[_ScalarT],
  1224. out: None = None,
  1225. ) -> NDArray[_ScalarT]: ...
  1226. @overload
  1227. def cumprod(
  1228. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1229. axis: SupportsIndex | None = None,
  1230. dtype: DTypeLike | None = None,
  1231. out: None = None,
  1232. ) -> NDArray[Any]: ...
  1233. @overload
  1234. def cumprod(
  1235. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1236. axis: SupportsIndex | None,
  1237. dtype: DTypeLike | None,
  1238. out: _ArrayT,
  1239. ) -> _ArrayT: ...
  1240. @overload
  1241. def cumprod(
  1242. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1243. axis: SupportsIndex | None = None,
  1244. dtype: DTypeLike | None = None,
  1245. *,
  1246. out: _ArrayT,
  1247. ) -> _ArrayT: ...
  1248. # TODO: Fix overlapping overloads: https://github.com/numpy/numpy/issues/27032
  1249. @overload
  1250. def cumulative_prod(
  1251. x: _ArrayLikeBool_co,
  1252. /,
  1253. *,
  1254. axis: SupportsIndex | None = None,
  1255. dtype: None = None,
  1256. out: None = None,
  1257. include_initial: bool = False,
  1258. ) -> NDArray[int_]: ...
  1259. @overload
  1260. def cumulative_prod(
  1261. x: _ArrayLikeUInt_co,
  1262. /,
  1263. *,
  1264. axis: SupportsIndex | None = None,
  1265. dtype: None = None,
  1266. out: None = None,
  1267. include_initial: bool = False,
  1268. ) -> NDArray[uint64]: ...
  1269. @overload
  1270. def cumulative_prod(
  1271. x: _ArrayLikeInt_co,
  1272. /,
  1273. *,
  1274. axis: SupportsIndex | None = None,
  1275. dtype: None = None,
  1276. out: None = None,
  1277. include_initial: bool = False,
  1278. ) -> NDArray[int64]: ...
  1279. @overload
  1280. def cumulative_prod(
  1281. x: _ArrayLikeFloat_co,
  1282. /,
  1283. *,
  1284. axis: SupportsIndex | None = None,
  1285. dtype: None = None,
  1286. out: None = None,
  1287. include_initial: bool = False,
  1288. ) -> NDArray[floating]: ...
  1289. @overload
  1290. def cumulative_prod(
  1291. x: _ArrayLikeComplex_co,
  1292. /,
  1293. *,
  1294. axis: SupportsIndex | None = None,
  1295. dtype: None = None,
  1296. out: None = None,
  1297. include_initial: bool = False,
  1298. ) -> NDArray[complexfloating]: ...
  1299. @overload
  1300. def cumulative_prod(
  1301. x: _ArrayLikeObject_co,
  1302. /,
  1303. *,
  1304. axis: SupportsIndex | None = None,
  1305. dtype: None = None,
  1306. out: None = None,
  1307. include_initial: bool = False,
  1308. ) -> NDArray[object_]: ...
  1309. @overload
  1310. def cumulative_prod(
  1311. x: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1312. /,
  1313. *,
  1314. axis: SupportsIndex | None = None,
  1315. dtype: _DTypeLike[_ScalarT],
  1316. out: None = None,
  1317. include_initial: bool = False,
  1318. ) -> NDArray[_ScalarT]: ...
  1319. @overload
  1320. def cumulative_prod(
  1321. x: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1322. /,
  1323. *,
  1324. axis: SupportsIndex | None = None,
  1325. dtype: DTypeLike | None = None,
  1326. out: None = None,
  1327. include_initial: bool = False,
  1328. ) -> NDArray[Any]: ...
  1329. @overload
  1330. def cumulative_prod(
  1331. x: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1332. /,
  1333. *,
  1334. axis: SupportsIndex | None = None,
  1335. dtype: DTypeLike | None = None,
  1336. out: _ArrayT,
  1337. include_initial: bool = False,
  1338. ) -> _ArrayT: ...
  1339. def ndim(a: ArrayLike) -> int: ...
  1340. def size(a: ArrayLike, axis: int | tuple[int, ...] | None = None) -> int: ...
  1341. # TODO: Fix overlapping overloads: https://github.com/numpy/numpy/issues/27032
  1342. @overload
  1343. def around(
  1344. a: _BoolLike_co,
  1345. decimals: SupportsIndex = 0,
  1346. out: None = None,
  1347. ) -> float16: ...
  1348. @overload
  1349. def around(
  1350. a: _NumberOrObjectT,
  1351. decimals: SupportsIndex = 0,
  1352. out: None = None,
  1353. ) -> _NumberOrObjectT: ...
  1354. @overload
  1355. def around(
  1356. a: _ComplexLike_co | object_,
  1357. decimals: SupportsIndex = 0,
  1358. out: None = None,
  1359. ) -> Any: ...
  1360. @overload
  1361. def around(
  1362. a: _ArrayLikeBool_co,
  1363. decimals: SupportsIndex = 0,
  1364. out: None = None,
  1365. ) -> NDArray[float16]: ...
  1366. @overload
  1367. def around(
  1368. a: _ArrayLike[_NumberOrObjectT],
  1369. decimals: SupportsIndex = 0,
  1370. out: None = None,
  1371. ) -> NDArray[_NumberOrObjectT]: ...
  1372. @overload
  1373. def around(
  1374. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1375. decimals: SupportsIndex = 0,
  1376. out: None = None,
  1377. ) -> NDArray[Any]: ...
  1378. @overload
  1379. def around(
  1380. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1381. decimals: SupportsIndex,
  1382. out: _ArrayT,
  1383. ) -> _ArrayT: ...
  1384. @overload
  1385. def around(
  1386. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1387. decimals: SupportsIndex = 0,
  1388. *,
  1389. out: _ArrayT,
  1390. ) -> _ArrayT: ...
  1391. # TODO: Fix overlapping overloads: https://github.com/numpy/numpy/issues/27032
  1392. @overload
  1393. def mean(
  1394. a: _ArrayLikeFloat_co,
  1395. axis: None = None,
  1396. dtype: None = None,
  1397. out: None = None,
  1398. keepdims: Literal[False] | _NoValueType = ...,
  1399. *,
  1400. where: _ArrayLikeBool_co | _NoValueType = ...,
  1401. ) -> floating: ...
  1402. @overload
  1403. def mean(
  1404. a: _ArrayLikeComplex_co,
  1405. axis: None = None,
  1406. dtype: None = None,
  1407. out: None = None,
  1408. keepdims: Literal[False] | _NoValueType = ...,
  1409. *,
  1410. where: _ArrayLikeBool_co | _NoValueType = ...,
  1411. ) -> complexfloating: ...
  1412. @overload
  1413. def mean(
  1414. a: _ArrayLike[np.timedelta64],
  1415. axis: None = None,
  1416. dtype: None = None,
  1417. out: None = None,
  1418. keepdims: Literal[False] | _NoValueType = ...,
  1419. *,
  1420. where: _ArrayLikeBool_co | _NoValueType = ...,
  1421. ) -> timedelta64: ...
  1422. @overload
  1423. def mean(
  1424. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1425. axis: _ShapeLike | None,
  1426. dtype: DTypeLike | None,
  1427. out: _ArrayT,
  1428. keepdims: bool | _NoValueType = ...,
  1429. *,
  1430. where: _ArrayLikeBool_co | _NoValueType = ...,
  1431. ) -> _ArrayT: ...
  1432. @overload
  1433. def mean(
  1434. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1435. axis: _ShapeLike | None = None,
  1436. dtype: DTypeLike | None = None,
  1437. *,
  1438. out: _ArrayT,
  1439. keepdims: bool | _NoValueType = ...,
  1440. where: _ArrayLikeBool_co | _NoValueType = ...,
  1441. ) -> _ArrayT: ...
  1442. @overload
  1443. def mean(
  1444. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1445. axis: None,
  1446. dtype: _DTypeLike[_ScalarT],
  1447. out: None = None,
  1448. keepdims: Literal[False] | _NoValueType = ...,
  1449. *,
  1450. where: _ArrayLikeBool_co | _NoValueType = ...,
  1451. ) -> _ScalarT: ...
  1452. @overload
  1453. def mean(
  1454. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1455. axis: None = None,
  1456. *,
  1457. dtype: _DTypeLike[_ScalarT],
  1458. out: None = None,
  1459. keepdims: Literal[False] | _NoValueType = ...,
  1460. where: _ArrayLikeBool_co | _NoValueType = ...,
  1461. ) -> _ScalarT: ...
  1462. @overload
  1463. def mean(
  1464. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1465. axis: _ShapeLike | None,
  1466. dtype: _DTypeLike[_ScalarT],
  1467. out: None,
  1468. keepdims: Literal[True, 1],
  1469. *,
  1470. where: _ArrayLikeBool_co | _NoValueType = ...,
  1471. ) -> NDArray[_ScalarT]: ...
  1472. @overload
  1473. def mean(
  1474. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1475. axis: _ShapeLike | None,
  1476. dtype: _DTypeLike[_ScalarT],
  1477. out: None = None,
  1478. *,
  1479. keepdims: bool | _NoValueType = ...,
  1480. where: _ArrayLikeBool_co | _NoValueType = ...,
  1481. ) -> _ScalarT | NDArray[_ScalarT]: ...
  1482. @overload
  1483. def mean(
  1484. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1485. axis: _ShapeLike | None = None,
  1486. *,
  1487. dtype: _DTypeLike[_ScalarT],
  1488. out: None = None,
  1489. keepdims: bool | _NoValueType = ...,
  1490. where: _ArrayLikeBool_co | _NoValueType = ...,
  1491. ) -> _ScalarT | NDArray[_ScalarT]: ...
  1492. @overload
  1493. def mean(
  1494. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1495. axis: _ShapeLike | None = None,
  1496. dtype: DTypeLike | None = None,
  1497. out: None = None,
  1498. keepdims: bool | _NoValueType = ...,
  1499. *,
  1500. where: _ArrayLikeBool_co | _NoValueType = ...,
  1501. ) -> Incomplete: ...
  1502. @overload
  1503. def std(
  1504. a: _ArrayLikeComplex_co,
  1505. axis: None = None,
  1506. dtype: None = None,
  1507. out: None = None,
  1508. ddof: float = 0,
  1509. keepdims: Literal[False] | _NoValueType = ...,
  1510. *,
  1511. where: _ArrayLikeBool_co | _NoValueType = ...,
  1512. mean: _ArrayLikeComplex_co | _NoValueType = ...,
  1513. correction: float | _NoValueType = ...,
  1514. ) -> floating: ...
  1515. @overload
  1516. def std(
  1517. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1518. axis: _ShapeLike | None = None,
  1519. dtype: None = None,
  1520. out: None = None,
  1521. ddof: float = 0,
  1522. keepdims: bool | _NoValueType = ...,
  1523. *,
  1524. where: _ArrayLikeBool_co | _NoValueType = ...,
  1525. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1526. correction: float | _NoValueType = ...,
  1527. ) -> Any: ...
  1528. @overload
  1529. def std(
  1530. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1531. axis: None,
  1532. dtype: _DTypeLike[_ScalarT],
  1533. out: None = None,
  1534. ddof: float = 0,
  1535. keepdims: Literal[False] | _NoValueType = ...,
  1536. *,
  1537. where: _ArrayLikeBool_co | _NoValueType = ...,
  1538. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1539. correction: float | _NoValueType = ...,
  1540. ) -> _ScalarT: ...
  1541. @overload
  1542. def std(
  1543. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1544. axis: None = None,
  1545. *,
  1546. dtype: _DTypeLike[_ScalarT],
  1547. out: None = None,
  1548. ddof: float = 0,
  1549. keepdims: Literal[False] | _NoValueType = ...,
  1550. where: _ArrayLikeBool_co | _NoValueType = ...,
  1551. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1552. correction: float | _NoValueType = ...,
  1553. ) -> _ScalarT: ...
  1554. @overload
  1555. def std(
  1556. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1557. axis: _ShapeLike | None = None,
  1558. dtype: DTypeLike | None = None,
  1559. out: None = None,
  1560. ddof: float = 0,
  1561. keepdims: bool | _NoValueType = ...,
  1562. *,
  1563. where: _ArrayLikeBool_co | _NoValueType = ...,
  1564. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1565. correction: float | _NoValueType = ...,
  1566. ) -> Any: ...
  1567. @overload
  1568. def std(
  1569. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1570. axis: _ShapeLike | None,
  1571. dtype: DTypeLike | None,
  1572. out: _ArrayT,
  1573. ddof: float = 0,
  1574. keepdims: bool | _NoValueType = ...,
  1575. *,
  1576. where: _ArrayLikeBool_co | _NoValueType = ...,
  1577. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1578. correction: float | _NoValueType = ...,
  1579. ) -> _ArrayT: ...
  1580. @overload
  1581. def std(
  1582. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1583. axis: _ShapeLike | None = None,
  1584. dtype: DTypeLike | None = None,
  1585. *,
  1586. out: _ArrayT,
  1587. ddof: float = 0,
  1588. keepdims: bool | _NoValueType = ...,
  1589. where: _ArrayLikeBool_co | _NoValueType = ...,
  1590. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1591. correction: float | _NoValueType = ...,
  1592. ) -> _ArrayT: ...
  1593. @overload
  1594. def var(
  1595. a: _ArrayLikeComplex_co,
  1596. axis: None = None,
  1597. dtype: None = None,
  1598. out: None = None,
  1599. ddof: float = 0,
  1600. keepdims: Literal[False] | _NoValueType = ...,
  1601. *,
  1602. where: _ArrayLikeBool_co | _NoValueType = ...,
  1603. mean: _ArrayLikeComplex_co | _NoValueType = ...,
  1604. correction: float | _NoValueType = ...,
  1605. ) -> floating: ...
  1606. @overload
  1607. def var(
  1608. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1609. axis: _ShapeLike | None = None,
  1610. dtype: None = None,
  1611. out: None = None,
  1612. ddof: float = 0,
  1613. keepdims: bool | _NoValueType = ...,
  1614. *,
  1615. where: _ArrayLikeBool_co | _NoValueType = ...,
  1616. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1617. correction: float | _NoValueType = ...,
  1618. ) -> Any: ...
  1619. @overload
  1620. def var(
  1621. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1622. axis: None,
  1623. dtype: _DTypeLike[_ScalarT],
  1624. out: None = None,
  1625. ddof: float = 0,
  1626. keepdims: Literal[False] | _NoValueType = ...,
  1627. *,
  1628. where: _ArrayLikeBool_co | _NoValueType = ...,
  1629. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1630. correction: float | _NoValueType = ...,
  1631. ) -> _ScalarT: ...
  1632. @overload
  1633. def var(
  1634. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1635. axis: None = None,
  1636. *,
  1637. dtype: _DTypeLike[_ScalarT],
  1638. out: None = None,
  1639. ddof: float = 0,
  1640. keepdims: Literal[False] | _NoValueType = ...,
  1641. where: _ArrayLikeBool_co | _NoValueType = ...,
  1642. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1643. correction: float | _NoValueType = ...,
  1644. ) -> _ScalarT: ...
  1645. @overload
  1646. def var(
  1647. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1648. axis: _ShapeLike | None = None,
  1649. dtype: DTypeLike | None = None,
  1650. out: None = None,
  1651. ddof: float = 0,
  1652. keepdims: bool | _NoValueType = ...,
  1653. *,
  1654. where: _ArrayLikeBool_co | _NoValueType = ...,
  1655. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1656. correction: float | _NoValueType = ...,
  1657. ) -> Any: ...
  1658. @overload
  1659. def var(
  1660. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1661. axis: _ShapeLike | None,
  1662. dtype: DTypeLike | None,
  1663. out: _ArrayT,
  1664. ddof: float = 0,
  1665. keepdims: bool | _NoValueType = ...,
  1666. *,
  1667. where: _ArrayLikeBool_co | _NoValueType = ...,
  1668. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1669. correction: float | _NoValueType = ...,
  1670. ) -> _ArrayT: ...
  1671. @overload
  1672. def var(
  1673. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  1674. axis: _ShapeLike | None = None,
  1675. dtype: DTypeLike | None = None,
  1676. *,
  1677. out: _ArrayT,
  1678. ddof: float = 0,
  1679. keepdims: bool | _NoValueType = ...,
  1680. where: _ArrayLikeBool_co | _NoValueType = ...,
  1681. mean: _ArrayLikeComplex_co | _ArrayLikeObject_co | _NoValueType = ...,
  1682. correction: float | _NoValueType = ...,
  1683. ) -> _ArrayT: ...
  1684. max = amax
  1685. min = amin
  1686. round = around