_function_base_impl.pyi 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894
  1. # ruff: noqa: ANN401
  2. from collections.abc import Callable, Iterable, Sequence
  3. from typing import (
  4. Any,
  5. Concatenate,
  6. ParamSpec,
  7. Protocol,
  8. SupportsIndex,
  9. SupportsInt,
  10. TypeAlias,
  11. TypeVar,
  12. overload,
  13. type_check_only,
  14. )
  15. from typing import Literal as L
  16. from _typeshed import Incomplete
  17. from typing_extensions import TypeIs, deprecated
  18. import numpy as np
  19. from numpy import (
  20. _OrderKACF,
  21. bool_,
  22. complex128,
  23. complexfloating,
  24. datetime64,
  25. float64,
  26. floating,
  27. generic,
  28. integer,
  29. intp,
  30. object_,
  31. timedelta64,
  32. vectorize,
  33. )
  34. from numpy._core.multiarray import bincount
  35. from numpy._globals import _NoValueType
  36. from numpy._typing import (
  37. ArrayLike,
  38. DTypeLike,
  39. NDArray,
  40. _ArrayLike,
  41. _ArrayLikeBool_co,
  42. _ArrayLikeComplex_co,
  43. _ArrayLikeDT64_co,
  44. _ArrayLikeFloat_co,
  45. _ArrayLikeInt_co,
  46. _ArrayLikeNumber_co,
  47. _ArrayLikeObject_co,
  48. _ArrayLikeTD64_co,
  49. _ComplexLike_co,
  50. _DTypeLike,
  51. _FloatLike_co,
  52. _NestedSequence,
  53. _NumberLike_co,
  54. _ScalarLike_co,
  55. _ShapeLike,
  56. )
  57. __all__ = [
  58. "select",
  59. "piecewise",
  60. "trim_zeros",
  61. "copy",
  62. "iterable",
  63. "percentile",
  64. "diff",
  65. "gradient",
  66. "angle",
  67. "unwrap",
  68. "sort_complex",
  69. "flip",
  70. "rot90",
  71. "extract",
  72. "place",
  73. "vectorize",
  74. "asarray_chkfinite",
  75. "average",
  76. "bincount",
  77. "digitize",
  78. "cov",
  79. "corrcoef",
  80. "median",
  81. "sinc",
  82. "hamming",
  83. "hanning",
  84. "bartlett",
  85. "blackman",
  86. "kaiser",
  87. "trapezoid",
  88. "trapz",
  89. "i0",
  90. "meshgrid",
  91. "delete",
  92. "insert",
  93. "append",
  94. "interp",
  95. "quantile",
  96. ]
  97. _T = TypeVar("_T")
  98. _T_co = TypeVar("_T_co", covariant=True)
  99. # The `{}ss` suffix refers to the Python 3.12 syntax: `**P`
  100. _Pss = ParamSpec("_Pss")
  101. _SCT = TypeVar("_SCT", bound=generic)
  102. _ArrayType = TypeVar("_ArrayType", bound=NDArray[Any])
  103. _2Tuple: TypeAlias = tuple[_T, _T]
  104. @type_check_only
  105. class _TrimZerosSequence(Protocol[_T_co]):
  106. def __len__(self, /) -> int: ...
  107. @overload
  108. def __getitem__(self, key: int, /) -> object: ...
  109. @overload
  110. def __getitem__(self, key: slice, /) -> _T_co: ...
  111. ###
  112. @overload
  113. def rot90(
  114. m: _ArrayLike[_SCT],
  115. k: int = ...,
  116. axes: tuple[int, int] = ...,
  117. ) -> NDArray[_SCT]: ...
  118. @overload
  119. def rot90(
  120. m: ArrayLike,
  121. k: int = ...,
  122. axes: tuple[int, int] = ...,
  123. ) -> NDArray[Any]: ...
  124. @overload
  125. def flip(m: _SCT, axis: None = ...) -> _SCT: ...
  126. @overload
  127. def flip(m: _ScalarLike_co, axis: None = ...) -> Any: ...
  128. @overload
  129. def flip(m: _ArrayLike[_SCT], axis: None | _ShapeLike = ...) -> NDArray[_SCT]: ...
  130. @overload
  131. def flip(m: ArrayLike, axis: None | _ShapeLike = ...) -> NDArray[Any]: ...
  132. def iterable(y: object) -> TypeIs[Iterable[Any]]: ...
  133. @overload
  134. def average(
  135. a: _ArrayLikeFloat_co,
  136. axis: None = None,
  137. weights: _ArrayLikeFloat_co | None = None,
  138. returned: L[False] = False,
  139. *,
  140. keepdims: L[False] | _NoValueType = ...,
  141. ) -> floating: ...
  142. @overload
  143. def average(
  144. a: _ArrayLikeFloat_co,
  145. axis: None = None,
  146. weights: _ArrayLikeFloat_co | None = None,
  147. *,
  148. returned: L[True],
  149. keepdims: L[False] | _NoValueType = ...,
  150. ) -> _2Tuple[floating]: ...
  151. @overload
  152. def average(
  153. a: _ArrayLikeComplex_co,
  154. axis: None = None,
  155. weights: _ArrayLikeComplex_co | None = None,
  156. returned: L[False] = False,
  157. *,
  158. keepdims: L[False] | _NoValueType = ...,
  159. ) -> complexfloating: ...
  160. @overload
  161. def average(
  162. a: _ArrayLikeComplex_co,
  163. axis: None = None,
  164. weights: _ArrayLikeComplex_co | None = None,
  165. *,
  166. returned: L[True],
  167. keepdims: L[False] | _NoValueType = ...,
  168. ) -> _2Tuple[complexfloating]: ...
  169. @overload
  170. def average(
  171. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  172. axis: _ShapeLike | None = None,
  173. weights: object | None = None,
  174. *,
  175. returned: L[True],
  176. keepdims: bool | bool_ | _NoValueType = ...,
  177. ) -> _2Tuple[Incomplete]: ...
  178. @overload
  179. def average(
  180. a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
  181. axis: _ShapeLike | None = None,
  182. weights: object | None = None,
  183. returned: bool | bool_ = False,
  184. *,
  185. keepdims: bool | bool_ | _NoValueType = ...,
  186. ) -> Incomplete: ...
  187. @overload
  188. def asarray_chkfinite(
  189. a: _ArrayLike[_SCT],
  190. dtype: None = ...,
  191. order: _OrderKACF = ...,
  192. ) -> NDArray[_SCT]: ...
  193. @overload
  194. def asarray_chkfinite(
  195. a: object,
  196. dtype: None = ...,
  197. order: _OrderKACF = ...,
  198. ) -> NDArray[Any]: ...
  199. @overload
  200. def asarray_chkfinite(
  201. a: Any,
  202. dtype: _DTypeLike[_SCT],
  203. order: _OrderKACF = ...,
  204. ) -> NDArray[_SCT]: ...
  205. @overload
  206. def asarray_chkfinite(
  207. a: Any,
  208. dtype: DTypeLike,
  209. order: _OrderKACF = ...,
  210. ) -> NDArray[Any]: ...
  211. @overload
  212. def piecewise(
  213. x: _ArrayLike[_SCT],
  214. condlist: _ArrayLike[bool_] | Sequence[_ArrayLikeBool_co],
  215. funclist: Sequence[
  216. Callable[Concatenate[NDArray[_SCT], _Pss], NDArray[_SCT | Any]]
  217. | _SCT | object
  218. ],
  219. /,
  220. *args: _Pss.args,
  221. **kw: _Pss.kwargs,
  222. ) -> NDArray[_SCT]: ...
  223. @overload
  224. def piecewise(
  225. x: ArrayLike,
  226. condlist: _ArrayLike[bool_] | Sequence[_ArrayLikeBool_co],
  227. funclist: Sequence[
  228. Callable[Concatenate[NDArray[Any], _Pss], NDArray[Any]]
  229. | object
  230. ],
  231. /,
  232. *args: _Pss.args,
  233. **kw: _Pss.kwargs,
  234. ) -> NDArray[Any]: ...
  235. def select(
  236. condlist: Sequence[ArrayLike],
  237. choicelist: Sequence[ArrayLike],
  238. default: ArrayLike = ...,
  239. ) -> NDArray[Any]: ...
  240. @overload
  241. def copy(
  242. a: _ArrayType,
  243. order: _OrderKACF,
  244. subok: L[True],
  245. ) -> _ArrayType: ...
  246. @overload
  247. def copy(
  248. a: _ArrayType,
  249. order: _OrderKACF = ...,
  250. *,
  251. subok: L[True],
  252. ) -> _ArrayType: ...
  253. @overload
  254. def copy(
  255. a: _ArrayLike[_SCT],
  256. order: _OrderKACF = ...,
  257. subok: L[False] = ...,
  258. ) -> NDArray[_SCT]: ...
  259. @overload
  260. def copy(
  261. a: ArrayLike,
  262. order: _OrderKACF = ...,
  263. subok: L[False] = ...,
  264. ) -> NDArray[Any]: ...
  265. def gradient(
  266. f: ArrayLike,
  267. *varargs: ArrayLike,
  268. axis: None | _ShapeLike = ...,
  269. edge_order: L[1, 2] = ...,
  270. ) -> Any: ...
  271. @overload
  272. def diff(
  273. a: _T,
  274. n: L[0],
  275. axis: SupportsIndex = ...,
  276. prepend: ArrayLike = ...,
  277. append: ArrayLike = ...,
  278. ) -> _T: ...
  279. @overload
  280. def diff(
  281. a: ArrayLike,
  282. n: int = ...,
  283. axis: SupportsIndex = ...,
  284. prepend: ArrayLike = ...,
  285. append: ArrayLike = ...,
  286. ) -> NDArray[Any]: ...
  287. @overload # float scalar
  288. def interp(
  289. x: _FloatLike_co,
  290. xp: _ArrayLikeFloat_co,
  291. fp: _ArrayLikeFloat_co,
  292. left: _FloatLike_co | None = None,
  293. right: _FloatLike_co | None = None,
  294. period: _FloatLike_co | None = None,
  295. ) -> float64: ...
  296. @overload # float array
  297. def interp(
  298. x: NDArray[floating | integer | np.bool] | _NestedSequence[_FloatLike_co],
  299. xp: _ArrayLikeFloat_co,
  300. fp: _ArrayLikeFloat_co,
  301. left: _FloatLike_co | None = None,
  302. right: _FloatLike_co | None = None,
  303. period: _FloatLike_co | None = None,
  304. ) -> NDArray[float64]: ...
  305. @overload # float scalar or array
  306. def interp(
  307. x: _ArrayLikeFloat_co,
  308. xp: _ArrayLikeFloat_co,
  309. fp: _ArrayLikeFloat_co,
  310. left: _FloatLike_co | None = None,
  311. right: _FloatLike_co | None = None,
  312. period: _FloatLike_co | None = None,
  313. ) -> NDArray[float64] | float64: ...
  314. @overload # complex scalar
  315. def interp(
  316. x: _FloatLike_co,
  317. xp: _ArrayLikeFloat_co,
  318. fp: _ArrayLike[complexfloating],
  319. left: _NumberLike_co | None = None,
  320. right: _NumberLike_co | None = None,
  321. period: _FloatLike_co | None = None,
  322. ) -> complex128: ...
  323. @overload # complex or float scalar
  324. def interp(
  325. x: _FloatLike_co,
  326. xp: _ArrayLikeFloat_co,
  327. fp: Sequence[complex | complexfloating],
  328. left: _NumberLike_co | None = None,
  329. right: _NumberLike_co | None = None,
  330. period: _FloatLike_co | None = None,
  331. ) -> complex128 | float64: ...
  332. @overload # complex array
  333. def interp(
  334. x: NDArray[floating | integer | np.bool] | _NestedSequence[_FloatLike_co],
  335. xp: _ArrayLikeFloat_co,
  336. fp: _ArrayLike[complexfloating],
  337. left: _NumberLike_co | None = None,
  338. right: _NumberLike_co | None = None,
  339. period: _FloatLike_co | None = None,
  340. ) -> NDArray[complex128]: ...
  341. @overload # complex or float array
  342. def interp(
  343. x: NDArray[floating | integer | np.bool] | _NestedSequence[_FloatLike_co],
  344. xp: _ArrayLikeFloat_co,
  345. fp: Sequence[complex | complexfloating],
  346. left: _NumberLike_co | None = None,
  347. right: _NumberLike_co | None = None,
  348. period: _FloatLike_co | None = None,
  349. ) -> NDArray[complex128 | float64]: ...
  350. @overload # complex scalar or array
  351. def interp(
  352. x: _ArrayLikeFloat_co,
  353. xp: _ArrayLikeFloat_co,
  354. fp: _ArrayLike[complexfloating],
  355. left: _NumberLike_co | None = None,
  356. right: _NumberLike_co | None = None,
  357. period: _FloatLike_co | None = None,
  358. ) -> NDArray[complex128] | complex128: ...
  359. @overload # complex or float scalar or array
  360. def interp(
  361. x: _ArrayLikeFloat_co,
  362. xp: _ArrayLikeFloat_co,
  363. fp: _ArrayLikeNumber_co,
  364. left: _NumberLike_co | None = None,
  365. right: _NumberLike_co | None = None,
  366. period: _FloatLike_co | None = None,
  367. ) -> NDArray[complex128 | float64] | complex128 | float64: ...
  368. @overload
  369. def angle(z: _ComplexLike_co, deg: bool = ...) -> floating[Any]: ...
  370. @overload
  371. def angle(z: object_, deg: bool = ...) -> Any: ...
  372. @overload
  373. def angle(z: _ArrayLikeComplex_co, deg: bool = ...) -> NDArray[floating[Any]]: ...
  374. @overload
  375. def angle(z: _ArrayLikeObject_co, deg: bool = ...) -> NDArray[object_]: ...
  376. @overload
  377. def unwrap(
  378. p: _ArrayLikeFloat_co,
  379. discont: None | float = ...,
  380. axis: int = ...,
  381. *,
  382. period: float = ...,
  383. ) -> NDArray[floating[Any]]: ...
  384. @overload
  385. def unwrap(
  386. p: _ArrayLikeObject_co,
  387. discont: None | float = ...,
  388. axis: int = ...,
  389. *,
  390. period: float = ...,
  391. ) -> NDArray[object_]: ...
  392. def sort_complex(a: ArrayLike) -> NDArray[complexfloating[Any, Any]]: ...
  393. def trim_zeros(
  394. filt: _TrimZerosSequence[_T],
  395. trim: L["f", "b", "fb", "bf"] = ...,
  396. ) -> _T: ...
  397. @overload
  398. def extract(condition: ArrayLike, arr: _ArrayLike[_SCT]) -> NDArray[_SCT]: ...
  399. @overload
  400. def extract(condition: ArrayLike, arr: ArrayLike) -> NDArray[Any]: ...
  401. def place(arr: NDArray[Any], mask: ArrayLike, vals: Any) -> None: ...
  402. @overload
  403. def cov(
  404. m: _ArrayLikeFloat_co,
  405. y: None | _ArrayLikeFloat_co = ...,
  406. rowvar: bool = ...,
  407. bias: bool = ...,
  408. ddof: None | SupportsIndex | SupportsInt = ...,
  409. fweights: None | ArrayLike = ...,
  410. aweights: None | ArrayLike = ...,
  411. *,
  412. dtype: None = ...,
  413. ) -> NDArray[floating[Any]]: ...
  414. @overload
  415. def cov(
  416. m: _ArrayLikeComplex_co,
  417. y: None | _ArrayLikeComplex_co = ...,
  418. rowvar: bool = ...,
  419. bias: bool = ...,
  420. ddof: None | SupportsIndex | SupportsInt = ...,
  421. fweights: None | ArrayLike = ...,
  422. aweights: None | ArrayLike = ...,
  423. *,
  424. dtype: None = ...,
  425. ) -> NDArray[complexfloating[Any, Any]]: ...
  426. @overload
  427. def cov(
  428. m: _ArrayLikeComplex_co,
  429. y: None | _ArrayLikeComplex_co = ...,
  430. rowvar: bool = ...,
  431. bias: bool = ...,
  432. ddof: None | SupportsIndex | SupportsInt = ...,
  433. fweights: None | ArrayLike = ...,
  434. aweights: None | ArrayLike = ...,
  435. *,
  436. dtype: _DTypeLike[_SCT],
  437. ) -> NDArray[_SCT]: ...
  438. @overload
  439. def cov(
  440. m: _ArrayLikeComplex_co,
  441. y: None | _ArrayLikeComplex_co = ...,
  442. rowvar: bool = ...,
  443. bias: bool = ...,
  444. ddof: None | SupportsIndex | SupportsInt = ...,
  445. fweights: None | ArrayLike = ...,
  446. aweights: None | ArrayLike = ...,
  447. *,
  448. dtype: DTypeLike,
  449. ) -> NDArray[Any]: ...
  450. # NOTE `bias` and `ddof` are deprecated and ignored
  451. @overload
  452. def corrcoef(
  453. m: _ArrayLikeFloat_co,
  454. y: _ArrayLikeFloat_co | None = None,
  455. rowvar: bool = True,
  456. bias: _NoValueType = ...,
  457. ddof: _NoValueType = ...,
  458. *,
  459. dtype: None = None,
  460. ) -> NDArray[floating]: ...
  461. @overload
  462. def corrcoef(
  463. m: _ArrayLikeComplex_co,
  464. y: _ArrayLikeComplex_co | None = None,
  465. rowvar: bool = True,
  466. bias: _NoValueType = ...,
  467. ddof: _NoValueType = ...,
  468. *,
  469. dtype: None = None,
  470. ) -> NDArray[complexfloating]: ...
  471. @overload
  472. def corrcoef(
  473. m: _ArrayLikeComplex_co,
  474. y: _ArrayLikeComplex_co | None = None,
  475. rowvar: bool = True,
  476. bias: _NoValueType = ...,
  477. ddof: _NoValueType = ...,
  478. *,
  479. dtype: _DTypeLike[_SCT],
  480. ) -> NDArray[_SCT]: ...
  481. @overload
  482. def corrcoef(
  483. m: _ArrayLikeComplex_co,
  484. y: _ArrayLikeComplex_co | None = None,
  485. rowvar: bool = True,
  486. bias: _NoValueType = ...,
  487. ddof: _NoValueType = ...,
  488. *,
  489. dtype: DTypeLike | None = None,
  490. ) -> NDArray[Any]: ...
  491. def blackman(M: _FloatLike_co) -> NDArray[floating[Any]]: ...
  492. def bartlett(M: _FloatLike_co) -> NDArray[floating[Any]]: ...
  493. def hanning(M: _FloatLike_co) -> NDArray[floating[Any]]: ...
  494. def hamming(M: _FloatLike_co) -> NDArray[floating[Any]]: ...
  495. def i0(x: _ArrayLikeFloat_co) -> NDArray[floating[Any]]: ...
  496. def kaiser(
  497. M: _FloatLike_co,
  498. beta: _FloatLike_co,
  499. ) -> NDArray[floating[Any]]: ...
  500. @overload
  501. def sinc(x: _FloatLike_co) -> floating[Any]: ...
  502. @overload
  503. def sinc(x: _ComplexLike_co) -> complexfloating[Any, Any]: ...
  504. @overload
  505. def sinc(x: _ArrayLikeFloat_co) -> NDArray[floating[Any]]: ...
  506. @overload
  507. def sinc(x: _ArrayLikeComplex_co) -> NDArray[complexfloating[Any, Any]]: ...
  508. @overload
  509. def median(
  510. a: _ArrayLikeFloat_co,
  511. axis: None = ...,
  512. out: None = ...,
  513. overwrite_input: bool = ...,
  514. keepdims: L[False] = ...,
  515. ) -> floating[Any]: ...
  516. @overload
  517. def median(
  518. a: _ArrayLikeComplex_co,
  519. axis: None = ...,
  520. out: None = ...,
  521. overwrite_input: bool = ...,
  522. keepdims: L[False] = ...,
  523. ) -> complexfloating[Any, Any]: ...
  524. @overload
  525. def median(
  526. a: _ArrayLikeTD64_co,
  527. axis: None = ...,
  528. out: None = ...,
  529. overwrite_input: bool = ...,
  530. keepdims: L[False] = ...,
  531. ) -> timedelta64: ...
  532. @overload
  533. def median(
  534. a: _ArrayLikeObject_co,
  535. axis: None = ...,
  536. out: None = ...,
  537. overwrite_input: bool = ...,
  538. keepdims: L[False] = ...,
  539. ) -> Any: ...
  540. @overload
  541. def median(
  542. a: _ArrayLikeFloat_co | _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeObject_co,
  543. axis: None | _ShapeLike = ...,
  544. out: None = ...,
  545. overwrite_input: bool = ...,
  546. keepdims: bool = ...,
  547. ) -> Any: ...
  548. @overload
  549. def median(
  550. a: _ArrayLikeFloat_co | _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeObject_co,
  551. axis: None | _ShapeLike,
  552. out: _ArrayType,
  553. overwrite_input: bool = ...,
  554. keepdims: bool = ...,
  555. ) -> _ArrayType: ...
  556. @overload
  557. def median(
  558. a: _ArrayLikeFloat_co | _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeObject_co,
  559. axis: None | _ShapeLike = ...,
  560. *,
  561. out: _ArrayType,
  562. overwrite_input: bool = ...,
  563. keepdims: bool = ...,
  564. ) -> _ArrayType: ...
  565. _MethodKind = L[
  566. "inverted_cdf",
  567. "averaged_inverted_cdf",
  568. "closest_observation",
  569. "interpolated_inverted_cdf",
  570. "hazen",
  571. "weibull",
  572. "linear",
  573. "median_unbiased",
  574. "normal_unbiased",
  575. "lower",
  576. "higher",
  577. "midpoint",
  578. "nearest",
  579. ]
  580. @overload
  581. def percentile(
  582. a: _ArrayLikeFloat_co,
  583. q: _FloatLike_co,
  584. axis: None = ...,
  585. out: None = ...,
  586. overwrite_input: bool = ...,
  587. method: _MethodKind = ...,
  588. keepdims: L[False] = ...,
  589. *,
  590. weights: None | _ArrayLikeFloat_co = ...,
  591. ) -> floating[Any]: ...
  592. @overload
  593. def percentile(
  594. a: _ArrayLikeComplex_co,
  595. q: _FloatLike_co,
  596. axis: None = ...,
  597. out: None = ...,
  598. overwrite_input: bool = ...,
  599. method: _MethodKind = ...,
  600. keepdims: L[False] = ...,
  601. *,
  602. weights: None | _ArrayLikeFloat_co = ...,
  603. ) -> complexfloating[Any, Any]: ...
  604. @overload
  605. def percentile(
  606. a: _ArrayLikeTD64_co,
  607. q: _FloatLike_co,
  608. axis: None = ...,
  609. out: None = ...,
  610. overwrite_input: bool = ...,
  611. method: _MethodKind = ...,
  612. keepdims: L[False] = ...,
  613. *,
  614. weights: None | _ArrayLikeFloat_co = ...,
  615. ) -> timedelta64: ...
  616. @overload
  617. def percentile(
  618. a: _ArrayLikeDT64_co,
  619. q: _FloatLike_co,
  620. axis: None = ...,
  621. out: None = ...,
  622. overwrite_input: bool = ...,
  623. method: _MethodKind = ...,
  624. keepdims: L[False] = ...,
  625. *,
  626. weights: None | _ArrayLikeFloat_co = ...,
  627. ) -> datetime64: ...
  628. @overload
  629. def percentile(
  630. a: _ArrayLikeObject_co,
  631. q: _FloatLike_co,
  632. axis: None = ...,
  633. out: None = ...,
  634. overwrite_input: bool = ...,
  635. method: _MethodKind = ...,
  636. keepdims: L[False] = ...,
  637. *,
  638. weights: None | _ArrayLikeFloat_co = ...,
  639. ) -> Any: ...
  640. @overload
  641. def percentile(
  642. a: _ArrayLikeFloat_co,
  643. q: _ArrayLikeFloat_co,
  644. axis: None = ...,
  645. out: None = ...,
  646. overwrite_input: bool = ...,
  647. method: _MethodKind = ...,
  648. keepdims: L[False] = ...,
  649. *,
  650. weights: None | _ArrayLikeFloat_co = ...,
  651. ) -> NDArray[floating[Any]]: ...
  652. @overload
  653. def percentile(
  654. a: _ArrayLikeComplex_co,
  655. q: _ArrayLikeFloat_co,
  656. axis: None = ...,
  657. out: None = ...,
  658. overwrite_input: bool = ...,
  659. method: _MethodKind = ...,
  660. keepdims: L[False] = ...,
  661. *,
  662. weights: None | _ArrayLikeFloat_co = ...,
  663. ) -> NDArray[complexfloating[Any, Any]]: ...
  664. @overload
  665. def percentile(
  666. a: _ArrayLikeTD64_co,
  667. q: _ArrayLikeFloat_co,
  668. axis: None = ...,
  669. out: None = ...,
  670. overwrite_input: bool = ...,
  671. method: _MethodKind = ...,
  672. keepdims: L[False] = ...,
  673. *,
  674. weights: None | _ArrayLikeFloat_co = ...,
  675. ) -> NDArray[timedelta64]: ...
  676. @overload
  677. def percentile(
  678. a: _ArrayLikeDT64_co,
  679. q: _ArrayLikeFloat_co,
  680. axis: None = ...,
  681. out: None = ...,
  682. overwrite_input: bool = ...,
  683. method: _MethodKind = ...,
  684. keepdims: L[False] = ...,
  685. *,
  686. weights: None | _ArrayLikeFloat_co = ...,
  687. ) -> NDArray[datetime64]: ...
  688. @overload
  689. def percentile(
  690. a: _ArrayLikeObject_co,
  691. q: _ArrayLikeFloat_co,
  692. axis: None = ...,
  693. out: None = ...,
  694. overwrite_input: bool = ...,
  695. method: _MethodKind = ...,
  696. keepdims: L[False] = ...,
  697. *,
  698. weights: None | _ArrayLikeFloat_co = ...,
  699. ) -> NDArray[object_]: ...
  700. @overload
  701. def percentile(
  702. a: _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeTD64_co | _ArrayLikeObject_co,
  703. q: _ArrayLikeFloat_co,
  704. axis: None | _ShapeLike = ...,
  705. out: None = ...,
  706. overwrite_input: bool = ...,
  707. method: _MethodKind = ...,
  708. keepdims: bool = ...,
  709. *,
  710. weights: None | _ArrayLikeFloat_co = ...,
  711. ) -> Any: ...
  712. @overload
  713. def percentile(
  714. a: _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeTD64_co | _ArrayLikeObject_co,
  715. q: _ArrayLikeFloat_co,
  716. axis: None | _ShapeLike,
  717. out: _ArrayType,
  718. overwrite_input: bool = ...,
  719. method: _MethodKind = ...,
  720. keepdims: bool = ...,
  721. *,
  722. weights: None | _ArrayLikeFloat_co = ...,
  723. ) -> _ArrayType: ...
  724. @overload
  725. def percentile(
  726. a: _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeTD64_co | _ArrayLikeObject_co,
  727. q: _ArrayLikeFloat_co,
  728. axis: None | _ShapeLike = ...,
  729. *,
  730. out: _ArrayType,
  731. overwrite_input: bool = ...,
  732. method: _MethodKind = ...,
  733. keepdims: bool = ...,
  734. weights: None | _ArrayLikeFloat_co = ...,
  735. ) -> _ArrayType: ...
  736. # NOTE: Not an alias, but they do have identical signatures
  737. # (that we can reuse)
  738. quantile = percentile
  739. _SCT_fm = TypeVar(
  740. "_SCT_fm",
  741. bound=floating[Any] | complexfloating[Any, Any] | timedelta64,
  742. )
  743. class _SupportsRMulFloat(Protocol[_T_co]):
  744. def __rmul__(self, other: float, /) -> _T_co: ...
  745. @overload
  746. def trapezoid( # type: ignore[overload-overlap]
  747. y: Sequence[_FloatLike_co],
  748. x: Sequence[_FloatLike_co] | None = ...,
  749. dx: float = ...,
  750. axis: SupportsIndex = ...,
  751. ) -> float64: ...
  752. @overload
  753. def trapezoid(
  754. y: Sequence[_ComplexLike_co],
  755. x: Sequence[_ComplexLike_co] | None = ...,
  756. dx: float = ...,
  757. axis: SupportsIndex = ...,
  758. ) -> complex128: ...
  759. @overload
  760. def trapezoid(
  761. y: _ArrayLike[bool_ | integer[Any]],
  762. x: _ArrayLike[bool_ | integer[Any]] | None = ...,
  763. dx: float = ...,
  764. axis: SupportsIndex = ...,
  765. ) -> float64 | NDArray[float64]: ...
  766. @overload
  767. def trapezoid( # type: ignore[overload-overlap]
  768. y: _ArrayLikeObject_co,
  769. x: _ArrayLikeFloat_co | _ArrayLikeObject_co | None = ...,
  770. dx: float = ...,
  771. axis: SupportsIndex = ...,
  772. ) -> float | NDArray[object_]: ...
  773. @overload
  774. def trapezoid(
  775. y: _ArrayLike[_SCT_fm],
  776. x: _ArrayLike[_SCT_fm] | _ArrayLikeInt_co | None = ...,
  777. dx: float = ...,
  778. axis: SupportsIndex = ...,
  779. ) -> _SCT_fm | NDArray[_SCT_fm]: ...
  780. @overload
  781. def trapezoid(
  782. y: Sequence[_SupportsRMulFloat[_T]],
  783. x: Sequence[_SupportsRMulFloat[_T] | _T] | None = ...,
  784. dx: float = ...,
  785. axis: SupportsIndex = ...,
  786. ) -> _T: ...
  787. @overload
  788. def trapezoid(
  789. y: _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeObject_co,
  790. x: _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeObject_co | None = ...,
  791. dx: float = ...,
  792. axis: SupportsIndex = ...,
  793. ) -> (
  794. floating[Any] | complexfloating[Any, Any] | timedelta64
  795. | NDArray[floating[Any] | complexfloating[Any, Any] | timedelta64 | object_]
  796. ): ...
  797. @deprecated("Use 'trapezoid' instead")
  798. def trapz(y: ArrayLike, x: ArrayLike | None = None, dx: float = 1.0, axis: int = -1) -> generic | NDArray[generic]: ...
  799. def meshgrid(
  800. *xi: ArrayLike,
  801. copy: bool = ...,
  802. sparse: bool = ...,
  803. indexing: L["xy", "ij"] = ...,
  804. ) -> tuple[NDArray[Any], ...]: ...
  805. @overload
  806. def delete(
  807. arr: _ArrayLike[_SCT],
  808. obj: slice | _ArrayLikeInt_co,
  809. axis: None | SupportsIndex = ...,
  810. ) -> NDArray[_SCT]: ...
  811. @overload
  812. def delete(
  813. arr: ArrayLike,
  814. obj: slice | _ArrayLikeInt_co,
  815. axis: None | SupportsIndex = ...,
  816. ) -> NDArray[Any]: ...
  817. @overload
  818. def insert(
  819. arr: _ArrayLike[_SCT],
  820. obj: slice | _ArrayLikeInt_co,
  821. values: ArrayLike,
  822. axis: None | SupportsIndex = ...,
  823. ) -> NDArray[_SCT]: ...
  824. @overload
  825. def insert(
  826. arr: ArrayLike,
  827. obj: slice | _ArrayLikeInt_co,
  828. values: ArrayLike,
  829. axis: None | SupportsIndex = ...,
  830. ) -> NDArray[Any]: ...
  831. def append(
  832. arr: ArrayLike,
  833. values: ArrayLike,
  834. axis: None | SupportsIndex = ...,
  835. ) -> NDArray[Any]: ...
  836. @overload
  837. def digitize(
  838. x: _FloatLike_co,
  839. bins: _ArrayLikeFloat_co,
  840. right: bool = ...,
  841. ) -> intp: ...
  842. @overload
  843. def digitize(
  844. x: _ArrayLikeFloat_co,
  845. bins: _ArrayLikeFloat_co,
  846. right: bool = ...,
  847. ) -> NDArray[intp]: ...