numeric.pyi 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276
  1. from _typeshed import Incomplete
  2. from builtins import bool as py_bool
  3. from collections.abc import Callable, Iterable, Sequence
  4. from typing import (
  5. Any,
  6. Final,
  7. Literal as L,
  8. SupportsAbs,
  9. SupportsIndex,
  10. TypeAlias,
  11. TypeGuard,
  12. TypeVar,
  13. overload,
  14. )
  15. import numpy as np
  16. from numpy import (
  17. False_,
  18. True_,
  19. _OrderCF,
  20. _OrderKACF,
  21. bitwise_not,
  22. inf,
  23. little_endian,
  24. nan,
  25. newaxis,
  26. ufunc,
  27. )
  28. from numpy._typing import (
  29. ArrayLike,
  30. DTypeLike,
  31. NDArray,
  32. _ArrayLike,
  33. _ArrayLikeBool_co,
  34. _ArrayLikeComplex_co,
  35. _ArrayLikeFloat_co,
  36. _ArrayLikeInt_co,
  37. _ArrayLikeNumber_co,
  38. _ArrayLikeTD64_co,
  39. _CDoubleCodes,
  40. _Complex128Codes,
  41. _DoubleCodes,
  42. _DTypeLike,
  43. _DTypeLikeBool,
  44. _Float64Codes,
  45. _IntCodes,
  46. _NestedSequence,
  47. _NumberLike_co,
  48. _ScalarLike_co,
  49. _Shape,
  50. _ShapeLike,
  51. _SupportsArray,
  52. _SupportsArrayFunc,
  53. _SupportsDType,
  54. )
  55. from ._asarray import require
  56. from ._ufunc_config import (
  57. errstate,
  58. getbufsize,
  59. geterr,
  60. geterrcall,
  61. setbufsize,
  62. seterr,
  63. seterrcall,
  64. )
  65. from .arrayprint import (
  66. array2string,
  67. array_repr,
  68. array_str,
  69. format_float_positional,
  70. format_float_scientific,
  71. get_printoptions,
  72. printoptions,
  73. set_printoptions,
  74. )
  75. from .fromnumeric import (
  76. all,
  77. amax,
  78. amin,
  79. any,
  80. argmax,
  81. argmin,
  82. argpartition,
  83. argsort,
  84. around,
  85. choose,
  86. clip,
  87. compress,
  88. cumprod,
  89. cumsum,
  90. cumulative_prod,
  91. cumulative_sum,
  92. diagonal,
  93. matrix_transpose,
  94. max,
  95. mean,
  96. min,
  97. ndim,
  98. nonzero,
  99. partition,
  100. prod,
  101. ptp,
  102. put,
  103. ravel,
  104. repeat,
  105. reshape,
  106. resize,
  107. round,
  108. searchsorted,
  109. shape,
  110. size,
  111. sort,
  112. squeeze,
  113. std,
  114. sum,
  115. swapaxes,
  116. take,
  117. trace,
  118. transpose,
  119. var,
  120. )
  121. from .multiarray import (
  122. ALLOW_THREADS as ALLOW_THREADS,
  123. BUFSIZE as BUFSIZE,
  124. CLIP as CLIP,
  125. MAXDIMS as MAXDIMS,
  126. MAY_SHARE_BOUNDS as MAY_SHARE_BOUNDS,
  127. MAY_SHARE_EXACT as MAY_SHARE_EXACT,
  128. RAISE as RAISE,
  129. WRAP as WRAP,
  130. _Array,
  131. _ConstructorEmpty,
  132. arange,
  133. array,
  134. asanyarray,
  135. asarray,
  136. ascontiguousarray,
  137. asfortranarray,
  138. broadcast,
  139. can_cast,
  140. concatenate,
  141. copyto,
  142. dot,
  143. dtype,
  144. empty,
  145. empty_like,
  146. flatiter,
  147. from_dlpack,
  148. frombuffer,
  149. fromfile,
  150. fromiter,
  151. fromstring,
  152. inner,
  153. lexsort,
  154. matmul,
  155. may_share_memory,
  156. min_scalar_type,
  157. ndarray,
  158. nditer,
  159. nested_iters,
  160. normalize_axis_index as normalize_axis_index,
  161. promote_types,
  162. putmask,
  163. result_type,
  164. shares_memory,
  165. vdot,
  166. where,
  167. zeros,
  168. )
  169. from .numerictypes import (
  170. ScalarType,
  171. bool,
  172. bool_,
  173. busday_count,
  174. busday_offset,
  175. busdaycalendar,
  176. byte,
  177. bytes_,
  178. cdouble,
  179. character,
  180. clongdouble,
  181. complex64,
  182. complex128,
  183. complex192,
  184. complex256,
  185. complexfloating,
  186. csingle,
  187. datetime64,
  188. datetime_as_string,
  189. datetime_data,
  190. double,
  191. flexible,
  192. float16,
  193. float32,
  194. float64,
  195. float96,
  196. float128,
  197. floating,
  198. generic,
  199. half,
  200. inexact,
  201. int8,
  202. int16,
  203. int32,
  204. int64,
  205. int_,
  206. intc,
  207. integer,
  208. intp,
  209. is_busday,
  210. isdtype,
  211. issubdtype,
  212. long,
  213. longdouble,
  214. longlong,
  215. number,
  216. object_,
  217. short,
  218. signedinteger,
  219. single,
  220. str_,
  221. timedelta64,
  222. typecodes,
  223. ubyte,
  224. uint,
  225. uint8,
  226. uint16,
  227. uint32,
  228. uint64,
  229. uintc,
  230. uintp,
  231. ulong,
  232. ulonglong,
  233. unsignedinteger,
  234. ushort,
  235. void,
  236. )
  237. from .umath import (
  238. absolute,
  239. add,
  240. arccos,
  241. arccosh,
  242. arcsin,
  243. arcsinh,
  244. arctan,
  245. arctan2,
  246. arctanh,
  247. bitwise_and,
  248. bitwise_count,
  249. bitwise_or,
  250. bitwise_xor,
  251. cbrt,
  252. ceil,
  253. conj,
  254. conjugate,
  255. copysign,
  256. cos,
  257. cosh,
  258. deg2rad,
  259. degrees,
  260. divide,
  261. divmod,
  262. e,
  263. equal,
  264. euler_gamma,
  265. exp,
  266. exp2,
  267. expm1,
  268. fabs,
  269. float_power,
  270. floor,
  271. floor_divide,
  272. fmax,
  273. fmin,
  274. fmod,
  275. frexp,
  276. frompyfunc,
  277. gcd,
  278. greater,
  279. greater_equal,
  280. heaviside,
  281. hypot,
  282. invert,
  283. isfinite,
  284. isinf,
  285. isnan,
  286. isnat,
  287. lcm,
  288. ldexp,
  289. left_shift,
  290. less,
  291. less_equal,
  292. log,
  293. log1p,
  294. log2,
  295. log10,
  296. logaddexp,
  297. logaddexp2,
  298. logical_and,
  299. logical_not,
  300. logical_or,
  301. logical_xor,
  302. matvec,
  303. maximum,
  304. minimum,
  305. mod,
  306. modf,
  307. multiply,
  308. negative,
  309. nextafter,
  310. not_equal,
  311. pi,
  312. positive,
  313. power,
  314. rad2deg,
  315. radians,
  316. reciprocal,
  317. remainder,
  318. right_shift,
  319. rint,
  320. sign,
  321. signbit,
  322. sin,
  323. sinh,
  324. spacing,
  325. sqrt,
  326. square,
  327. subtract,
  328. tan,
  329. tanh,
  330. true_divide,
  331. trunc,
  332. vecdot,
  333. vecmat,
  334. )
  335. __all__ = [
  336. "False_",
  337. "ScalarType",
  338. "True_",
  339. "absolute",
  340. "add",
  341. "all",
  342. "allclose",
  343. "amax",
  344. "amin",
  345. "any",
  346. "arange",
  347. "arccos",
  348. "arccosh",
  349. "arcsin",
  350. "arcsinh",
  351. "arctan",
  352. "arctan2",
  353. "arctanh",
  354. "argmax",
  355. "argmin",
  356. "argpartition",
  357. "argsort",
  358. "argwhere",
  359. "around",
  360. "array",
  361. "array2string",
  362. "array_equal",
  363. "array_equiv",
  364. "array_repr",
  365. "array_str",
  366. "asanyarray",
  367. "asarray",
  368. "ascontiguousarray",
  369. "asfortranarray",
  370. "astype",
  371. "base_repr",
  372. "binary_repr",
  373. "bitwise_and",
  374. "bitwise_count",
  375. "bitwise_not",
  376. "bitwise_or",
  377. "bitwise_xor",
  378. "bool",
  379. "bool_",
  380. "broadcast",
  381. "busday_count",
  382. "busday_offset",
  383. "busdaycalendar",
  384. "byte",
  385. "bytes_",
  386. "can_cast",
  387. "cbrt",
  388. "cdouble",
  389. "ceil",
  390. "character",
  391. "choose",
  392. "clip",
  393. "clongdouble",
  394. "complex64",
  395. "complex128",
  396. "complex192",
  397. "complex256",
  398. "complexfloating",
  399. "compress",
  400. "concatenate",
  401. "conj",
  402. "conjugate",
  403. "convolve",
  404. "copysign",
  405. "copyto",
  406. "correlate",
  407. "cos",
  408. "cosh",
  409. "count_nonzero",
  410. "cross",
  411. "csingle",
  412. "cumprod",
  413. "cumsum",
  414. "cumulative_prod",
  415. "cumulative_sum",
  416. "datetime64",
  417. "datetime_as_string",
  418. "datetime_data",
  419. "deg2rad",
  420. "degrees",
  421. "diagonal",
  422. "divide",
  423. "divmod",
  424. "dot",
  425. "double",
  426. "dtype",
  427. "e",
  428. "empty",
  429. "empty_like",
  430. "equal",
  431. "errstate",
  432. "euler_gamma",
  433. "exp",
  434. "exp2",
  435. "expm1",
  436. "fabs",
  437. "flatiter",
  438. "flatnonzero",
  439. "flexible",
  440. "float16",
  441. "float32",
  442. "float64",
  443. "float96",
  444. "float128",
  445. "float_power",
  446. "floating",
  447. "floor",
  448. "floor_divide",
  449. "fmax",
  450. "fmin",
  451. "fmod",
  452. "format_float_positional",
  453. "format_float_scientific",
  454. "frexp",
  455. "from_dlpack",
  456. "frombuffer",
  457. "fromfile",
  458. "fromfunction",
  459. "fromiter",
  460. "frompyfunc",
  461. "fromstring",
  462. "full",
  463. "full_like",
  464. "gcd",
  465. "generic",
  466. "get_printoptions",
  467. "getbufsize",
  468. "geterr",
  469. "geterrcall",
  470. "greater",
  471. "greater_equal",
  472. "half",
  473. "heaviside",
  474. "hypot",
  475. "identity",
  476. "indices",
  477. "inexact",
  478. "inf",
  479. "inner",
  480. "int8",
  481. "int16",
  482. "int32",
  483. "int64",
  484. "int_",
  485. "intc",
  486. "integer",
  487. "intp",
  488. "invert",
  489. "is_busday",
  490. "isclose",
  491. "isdtype",
  492. "isfinite",
  493. "isfortran",
  494. "isinf",
  495. "isnan",
  496. "isnat",
  497. "isscalar",
  498. "issubdtype",
  499. "lcm",
  500. "ldexp",
  501. "left_shift",
  502. "less",
  503. "less_equal",
  504. "lexsort",
  505. "little_endian",
  506. "log",
  507. "log1p",
  508. "log2",
  509. "log10",
  510. "logaddexp",
  511. "logaddexp2",
  512. "logical_and",
  513. "logical_not",
  514. "logical_or",
  515. "logical_xor",
  516. "long",
  517. "longdouble",
  518. "longlong",
  519. "matmul",
  520. "matrix_transpose",
  521. "matvec",
  522. "max",
  523. "maximum",
  524. "may_share_memory",
  525. "mean",
  526. "min",
  527. "min_scalar_type",
  528. "minimum",
  529. "mod",
  530. "modf",
  531. "moveaxis",
  532. "multiply",
  533. "nan",
  534. "ndarray",
  535. "ndim",
  536. "nditer",
  537. "negative",
  538. "nested_iters",
  539. "newaxis",
  540. "nextafter",
  541. "nonzero",
  542. "not_equal",
  543. "number",
  544. "object_",
  545. "ones",
  546. "ones_like",
  547. "outer",
  548. "partition",
  549. "pi",
  550. "positive",
  551. "power",
  552. "printoptions",
  553. "prod",
  554. "promote_types",
  555. "ptp",
  556. "put",
  557. "putmask",
  558. "rad2deg",
  559. "radians",
  560. "ravel",
  561. "reciprocal",
  562. "remainder",
  563. "repeat",
  564. "require",
  565. "reshape",
  566. "resize",
  567. "result_type",
  568. "right_shift",
  569. "rint",
  570. "roll",
  571. "rollaxis",
  572. "round",
  573. "searchsorted",
  574. "set_printoptions",
  575. "setbufsize",
  576. "seterr",
  577. "seterrcall",
  578. "shape",
  579. "shares_memory",
  580. "short",
  581. "sign",
  582. "signbit",
  583. "signedinteger",
  584. "sin",
  585. "single",
  586. "sinh",
  587. "size",
  588. "sort",
  589. "spacing",
  590. "sqrt",
  591. "square",
  592. "squeeze",
  593. "std",
  594. "str_",
  595. "subtract",
  596. "sum",
  597. "swapaxes",
  598. "take",
  599. "tan",
  600. "tanh",
  601. "tensordot",
  602. "timedelta64",
  603. "trace",
  604. "transpose",
  605. "true_divide",
  606. "trunc",
  607. "typecodes",
  608. "ubyte",
  609. "ufunc",
  610. "uint",
  611. "uint8",
  612. "uint16",
  613. "uint32",
  614. "uint64",
  615. "uintc",
  616. "uintp",
  617. "ulong",
  618. "ulonglong",
  619. "unsignedinteger",
  620. "ushort",
  621. "var",
  622. "vdot",
  623. "vecdot",
  624. "vecmat",
  625. "void",
  626. "where",
  627. "zeros",
  628. "zeros_like",
  629. ]
  630. _T = TypeVar("_T")
  631. _ScalarT = TypeVar("_ScalarT", bound=generic)
  632. _NumberObjectT = TypeVar("_NumberObjectT", bound=number | object_)
  633. _NumericScalarT = TypeVar("_NumericScalarT", bound=number | timedelta64 | object_)
  634. _DTypeT = TypeVar("_DTypeT", bound=dtype)
  635. _ArrayT = TypeVar("_ArrayT", bound=np.ndarray[Any, Any])
  636. _ShapeT = TypeVar("_ShapeT", bound=_Shape)
  637. _AnyShapeT = TypeVar(
  638. "_AnyShapeT",
  639. tuple[()],
  640. tuple[int],
  641. tuple[int, int],
  642. tuple[int, int, int],
  643. tuple[int, int, int, int],
  644. tuple[int, ...],
  645. )
  646. _AnyNumericScalarT = TypeVar(
  647. "_AnyNumericScalarT",
  648. np.int8, np.int16, np.int32, np.int64,
  649. np.uint8, np.uint16, np.uint32, np.uint64,
  650. np.float16, np.float32, np.float64, np.longdouble,
  651. np.complex64, np.complex128, np.clongdouble,
  652. np.timedelta64,
  653. np.object_,
  654. )
  655. _CorrelateMode: TypeAlias = L["valid", "same", "full"]
  656. _Array1D: TypeAlias = np.ndarray[tuple[int], np.dtype[_ScalarT]]
  657. _Array2D: TypeAlias = np.ndarray[tuple[int, int], np.dtype[_ScalarT]]
  658. _Array3D: TypeAlias = np.ndarray[tuple[int, int, int], np.dtype[_ScalarT]]
  659. _Array4D: TypeAlias = np.ndarray[tuple[int, int, int, int], np.dtype[_ScalarT]]
  660. _Int_co: TypeAlias = np.integer | np.bool
  661. _Float_co: TypeAlias = np.floating | _Int_co
  662. _Number_co: TypeAlias = np.number | np.bool
  663. _TD64_co: TypeAlias = np.timedelta64 | _Int_co
  664. _ArrayLike1D: TypeAlias = _SupportsArray[np.dtype[_ScalarT]] | Sequence[_ScalarT]
  665. _ArrayLike1DBool_co: TypeAlias = _SupportsArray[np.dtype[np.bool]] | Sequence[py_bool | np.bool]
  666. _ArrayLike1DInt_co: TypeAlias = _SupportsArray[np.dtype[_Int_co]] | Sequence[int | _Int_co]
  667. _ArrayLike1DFloat_co: TypeAlias = _SupportsArray[np.dtype[_Float_co]] | Sequence[float | _Float_co]
  668. _ArrayLike1DNumber_co: TypeAlias = _SupportsArray[np.dtype[_Number_co]] | Sequence[complex | _Number_co]
  669. _ArrayLike1DTD64_co: TypeAlias = _ArrayLike1D[_TD64_co]
  670. _ArrayLike1DObject_co: TypeAlias = _ArrayLike1D[np.object_]
  671. _DTypeLikeInt: TypeAlias = type[int] | _IntCodes
  672. _DTypeLikeFloat64: TypeAlias = type[float] | _Float64Codes | _DoubleCodes
  673. _DTypeLikeComplex128: TypeAlias = type[complex] | _Complex128Codes | _CDoubleCodes
  674. ###
  675. # keep in sync with `ones_like`
  676. @overload
  677. def zeros_like(
  678. a: _ArrayT,
  679. dtype: None = None,
  680. order: _OrderKACF = "K",
  681. subok: L[True] = True,
  682. shape: None = None,
  683. *,
  684. device: L["cpu"] | None = None,
  685. ) -> _ArrayT: ...
  686. @overload
  687. def zeros_like(
  688. a: _ArrayLike[_ScalarT],
  689. dtype: None = None,
  690. order: _OrderKACF = "K",
  691. subok: py_bool = True,
  692. shape: _ShapeLike | None = None,
  693. *,
  694. device: L["cpu"] | None = None,
  695. ) -> NDArray[_ScalarT]: ...
  696. @overload
  697. def zeros_like(
  698. a: object,
  699. dtype: _DTypeLike[_ScalarT],
  700. order: _OrderKACF = "K",
  701. subok: py_bool = True,
  702. shape: _ShapeLike | None = None,
  703. *,
  704. device: L["cpu"] | None = None,
  705. ) -> NDArray[_ScalarT]: ...
  706. @overload
  707. def zeros_like(
  708. a: object,
  709. dtype: DTypeLike | None = None,
  710. order: _OrderKACF = "K",
  711. subok: py_bool = True,
  712. shape: _ShapeLike | None = None,
  713. *,
  714. device: L["cpu"] | None = None,
  715. ) -> NDArray[Any]: ...
  716. ones: Final[_ConstructorEmpty]
  717. # keep in sync with `zeros_like`
  718. @overload
  719. def ones_like(
  720. a: _ArrayT,
  721. dtype: None = None,
  722. order: _OrderKACF = "K",
  723. subok: L[True] = True,
  724. shape: None = None,
  725. *,
  726. device: L["cpu"] | None = None,
  727. ) -> _ArrayT: ...
  728. @overload
  729. def ones_like(
  730. a: _ArrayLike[_ScalarT],
  731. dtype: None = None,
  732. order: _OrderKACF = "K",
  733. subok: py_bool = True,
  734. shape: _ShapeLike | None = None,
  735. *,
  736. device: L["cpu"] | None = None,
  737. ) -> NDArray[_ScalarT]: ...
  738. @overload
  739. def ones_like(
  740. a: object,
  741. dtype: _DTypeLike[_ScalarT],
  742. order: _OrderKACF = "K",
  743. subok: py_bool = True,
  744. shape: _ShapeLike | None = None,
  745. *,
  746. device: L["cpu"] | None = None,
  747. ) -> NDArray[_ScalarT]: ...
  748. @overload
  749. def ones_like(
  750. a: object,
  751. dtype: DTypeLike | None = None,
  752. order: _OrderKACF = "K",
  753. subok: py_bool = True,
  754. shape: _ShapeLike | None = None,
  755. *,
  756. device: L["cpu"] | None = None,
  757. ) -> NDArray[Any]: ...
  758. # TODO: Add overloads for bool, int, float, complex, str, bytes, and memoryview
  759. # 1-D shape
  760. @overload
  761. def full(
  762. shape: SupportsIndex,
  763. fill_value: _ScalarT,
  764. dtype: None = None,
  765. order: _OrderCF = "C",
  766. *,
  767. device: L["cpu"] | None = None,
  768. like: _SupportsArrayFunc | None = None,
  769. ) -> _Array[tuple[int], _ScalarT]: ...
  770. @overload
  771. def full(
  772. shape: SupportsIndex,
  773. fill_value: Any,
  774. dtype: _DTypeT | _SupportsDType[_DTypeT],
  775. order: _OrderCF = "C",
  776. *,
  777. device: L["cpu"] | None = None,
  778. like: _SupportsArrayFunc | None = None,
  779. ) -> np.ndarray[tuple[int], _DTypeT]: ...
  780. @overload
  781. def full(
  782. shape: SupportsIndex,
  783. fill_value: Any,
  784. dtype: type[_ScalarT],
  785. order: _OrderCF = "C",
  786. *,
  787. device: L["cpu"] | None = None,
  788. like: _SupportsArrayFunc | None = None,
  789. ) -> _Array[tuple[int], _ScalarT]: ...
  790. @overload
  791. def full(
  792. shape: SupportsIndex,
  793. fill_value: Any,
  794. dtype: DTypeLike | None = None,
  795. order: _OrderCF = "C",
  796. *,
  797. device: L["cpu"] | None = None,
  798. like: _SupportsArrayFunc | None = None,
  799. ) -> _Array[tuple[int], Any]: ...
  800. # known shape
  801. @overload
  802. def full(
  803. shape: _AnyShapeT,
  804. fill_value: _ScalarT,
  805. dtype: None = None,
  806. order: _OrderCF = "C",
  807. *,
  808. device: L["cpu"] | None = None,
  809. like: _SupportsArrayFunc | None = None,
  810. ) -> _Array[_AnyShapeT, _ScalarT]: ...
  811. @overload
  812. def full(
  813. shape: _AnyShapeT,
  814. fill_value: Any,
  815. dtype: _DTypeT | _SupportsDType[_DTypeT],
  816. order: _OrderCF = "C",
  817. *,
  818. device: L["cpu"] | None = None,
  819. like: _SupportsArrayFunc | None = None,
  820. ) -> np.ndarray[_AnyShapeT, _DTypeT]: ...
  821. @overload
  822. def full(
  823. shape: _AnyShapeT,
  824. fill_value: Any,
  825. dtype: type[_ScalarT],
  826. order: _OrderCF = "C",
  827. *,
  828. device: L["cpu"] | None = None,
  829. like: _SupportsArrayFunc | None = None,
  830. ) -> _Array[_AnyShapeT, _ScalarT]: ...
  831. @overload
  832. def full(
  833. shape: _AnyShapeT,
  834. fill_value: Any,
  835. dtype: DTypeLike | None = None,
  836. order: _OrderCF = "C",
  837. *,
  838. device: L["cpu"] | None = None,
  839. like: _SupportsArrayFunc | None = None,
  840. ) -> _Array[_AnyShapeT, Any]: ...
  841. # unknown shape
  842. @overload
  843. def full(
  844. shape: _ShapeLike,
  845. fill_value: _ScalarT,
  846. dtype: None = None,
  847. order: _OrderCF = "C",
  848. *,
  849. device: L["cpu"] | None = None,
  850. like: _SupportsArrayFunc | None = None,
  851. ) -> NDArray[_ScalarT]: ...
  852. @overload
  853. def full(
  854. shape: _ShapeLike,
  855. fill_value: Any,
  856. dtype: _DTypeT | _SupportsDType[_DTypeT],
  857. order: _OrderCF = "C",
  858. *,
  859. device: L["cpu"] | None = None,
  860. like: _SupportsArrayFunc | None = None,
  861. ) -> np.ndarray[Any, _DTypeT]: ...
  862. @overload
  863. def full(
  864. shape: _ShapeLike,
  865. fill_value: Any,
  866. dtype: type[_ScalarT],
  867. order: _OrderCF = "C",
  868. *,
  869. device: L["cpu"] | None = None,
  870. like: _SupportsArrayFunc | None = None,
  871. ) -> NDArray[_ScalarT]: ...
  872. @overload
  873. def full(
  874. shape: _ShapeLike,
  875. fill_value: Any,
  876. dtype: DTypeLike | None = None,
  877. order: _OrderCF = "C",
  878. *,
  879. device: L["cpu"] | None = None,
  880. like: _SupportsArrayFunc | None = None,
  881. ) -> NDArray[Any]: ...
  882. @overload
  883. def full_like(
  884. a: _ArrayT,
  885. fill_value: object,
  886. dtype: None = None,
  887. order: _OrderKACF = "K",
  888. subok: L[True] = True,
  889. shape: None = None,
  890. *,
  891. device: L["cpu"] | None = None,
  892. ) -> _ArrayT: ...
  893. @overload
  894. def full_like(
  895. a: _ArrayLike[_ScalarT],
  896. fill_value: object,
  897. dtype: None = None,
  898. order: _OrderKACF = "K",
  899. subok: py_bool = True,
  900. shape: _ShapeLike | None = None,
  901. *,
  902. device: L["cpu"] | None = None,
  903. ) -> NDArray[_ScalarT]: ...
  904. @overload
  905. def full_like(
  906. a: object,
  907. fill_value: object,
  908. dtype: _DTypeLike[_ScalarT],
  909. order: _OrderKACF = "K",
  910. subok: py_bool = True,
  911. shape: _ShapeLike | None = None,
  912. *,
  913. device: L["cpu"] | None = None,
  914. ) -> NDArray[_ScalarT]: ...
  915. @overload
  916. def full_like(
  917. a: object,
  918. fill_value: object,
  919. dtype: DTypeLike | None = None,
  920. order: _OrderKACF = "K",
  921. subok: py_bool = True,
  922. shape: _ShapeLike | None = None,
  923. *,
  924. device: L["cpu"] | None = None,
  925. ) -> NDArray[Any]: ...
  926. #
  927. @overload
  928. def count_nonzero(a: ArrayLike, axis: None = None, *, keepdims: L[False] = False) -> np.intp: ...
  929. @overload
  930. def count_nonzero(a: _ScalarLike_co, axis: _ShapeLike | None = None, *, keepdims: L[True]) -> np.intp: ...
  931. @overload
  932. def count_nonzero(
  933. a: NDArray[Any] | _NestedSequence[ArrayLike], axis: _ShapeLike | None = None, *, keepdims: L[True]
  934. ) -> NDArray[np.intp]: ...
  935. @overload
  936. def count_nonzero(a: ArrayLike, axis: _ShapeLike | None = None, *, keepdims: py_bool = False) -> Any: ...
  937. #
  938. def isfortran(a: ndarray | generic) -> py_bool: ...
  939. #
  940. def argwhere(a: ArrayLike) -> _Array2D[np.intp]: ...
  941. def flatnonzero(a: ArrayLike) -> _Array1D[np.intp]: ...
  942. # keep in sync with `convolve`
  943. @overload
  944. def correlate(
  945. a: _ArrayLike1D[_AnyNumericScalarT], v: _ArrayLike1D[_AnyNumericScalarT], mode: _CorrelateMode = "valid"
  946. ) -> _Array1D[_AnyNumericScalarT]: ...
  947. @overload
  948. def correlate(a: _ArrayLike1DBool_co, v: _ArrayLike1DBool_co, mode: _CorrelateMode = "valid") -> _Array1D[np.bool]: ...
  949. @overload
  950. def correlate(a: _ArrayLike1DInt_co, v: _ArrayLike1DInt_co, mode: _CorrelateMode = "valid") -> _Array1D[np.int_ | Any]: ...
  951. @overload
  952. def correlate(a: _ArrayLike1DFloat_co, v: _ArrayLike1DFloat_co, mode: _CorrelateMode = "valid") -> _Array1D[np.float64 | Any]: ...
  953. @overload
  954. def correlate(
  955. a: _ArrayLike1DNumber_co, v: _ArrayLike1DNumber_co, mode: _CorrelateMode = "valid"
  956. ) -> _Array1D[np.complex128 | Any]: ...
  957. @overload
  958. def correlate(
  959. a: _ArrayLike1DTD64_co, v: _ArrayLike1DTD64_co, mode: _CorrelateMode = "valid"
  960. ) -> _Array1D[np.timedelta64 | Any]: ...
  961. # keep in sync with `correlate`
  962. @overload
  963. def convolve(
  964. a: _ArrayLike1D[_AnyNumericScalarT], v: _ArrayLike1D[_AnyNumericScalarT], mode: _CorrelateMode = "valid"
  965. ) -> _Array1D[_AnyNumericScalarT]: ...
  966. @overload
  967. def convolve(a: _ArrayLike1DBool_co, v: _ArrayLike1DBool_co, mode: _CorrelateMode = "valid") -> _Array1D[np.bool]: ...
  968. @overload
  969. def convolve(a: _ArrayLike1DInt_co, v: _ArrayLike1DInt_co, mode: _CorrelateMode = "valid") -> _Array1D[np.int_ | Any]: ...
  970. @overload
  971. def convolve(a: _ArrayLike1DFloat_co, v: _ArrayLike1DFloat_co, mode: _CorrelateMode = "valid") -> _Array1D[np.float64 | Any]: ...
  972. @overload
  973. def convolve(
  974. a: _ArrayLike1DNumber_co, v: _ArrayLike1DNumber_co, mode: _CorrelateMode = "valid"
  975. ) -> _Array1D[np.complex128 | Any]: ...
  976. @overload
  977. def convolve(
  978. a: _ArrayLike1DTD64_co, v: _ArrayLike1DTD64_co, mode: _CorrelateMode = "valid"
  979. ) -> _Array1D[np.timedelta64 | Any]: ...
  980. # keep roughly in sync with `convolve` and `correlate`, but for 2-D output and an additional `out` overload
  981. @overload
  982. def outer(
  983. a: _ArrayLike[_AnyNumericScalarT], b: _ArrayLike[_AnyNumericScalarT], out: None = None
  984. ) -> _Array2D[_AnyNumericScalarT]: ...
  985. @overload
  986. def outer(a: _ArrayLikeBool_co, b: _ArrayLikeBool_co, out: None = None) -> _Array2D[np.bool]: ...
  987. @overload
  988. def outer(a: _ArrayLikeInt_co, b: _ArrayLikeInt_co, out: None = None) -> _Array2D[np.int_ | Any]: ...
  989. @overload
  990. def outer(a: _ArrayLikeFloat_co, b: _ArrayLikeFloat_co, out: None = None) -> _Array2D[np.float64 | Any]: ...
  991. @overload
  992. def outer(a: _ArrayLikeComplex_co, b: _ArrayLikeComplex_co, out: None = None) -> _Array2D[np.complex128 | Any]: ...
  993. @overload
  994. def outer(a: _ArrayLikeTD64_co, b: _ArrayLikeTD64_co, out: None = None) -> _Array2D[np.timedelta64 | Any]: ...
  995. @overload
  996. def outer(a: _ArrayLikeNumber_co | _ArrayLikeTD64_co, b: _ArrayLikeNumber_co | _ArrayLikeTD64_co, out: _ArrayT) -> _ArrayT: ...
  997. # keep in sync with numpy.linalg._linalg.tensordot (ignoring `/, *`)
  998. @overload
  999. def tensordot(
  1000. a: _ArrayLike[_AnyNumericScalarT], b: _ArrayLike[_AnyNumericScalarT], axes: int | tuple[_ShapeLike, _ShapeLike] = 2
  1001. ) -> NDArray[_AnyNumericScalarT]: ...
  1002. @overload
  1003. def tensordot(a: _ArrayLikeBool_co, b: _ArrayLikeBool_co, axes: int | tuple[_ShapeLike, _ShapeLike] = 2) -> NDArray[np.bool]: ...
  1004. @overload
  1005. def tensordot(
  1006. a: _ArrayLikeInt_co, b: _ArrayLikeInt_co, axes: int | tuple[_ShapeLike, _ShapeLike] = 2
  1007. ) -> NDArray[np.int_ | Any]: ...
  1008. @overload
  1009. def tensordot(
  1010. a: _ArrayLikeFloat_co, b: _ArrayLikeFloat_co, axes: int | tuple[_ShapeLike, _ShapeLike] = 2
  1011. ) -> NDArray[np.float64 | Any]: ...
  1012. @overload
  1013. def tensordot(
  1014. a: _ArrayLikeComplex_co, b: _ArrayLikeComplex_co, axes: int | tuple[_ShapeLike, _ShapeLike] = 2
  1015. ) -> NDArray[np.complex128 | Any]: ...
  1016. #
  1017. @overload
  1018. def cross(
  1019. a: _ArrayLike[_AnyNumericScalarT],
  1020. b: _ArrayLike[_AnyNumericScalarT],
  1021. axisa: int = -1,
  1022. axisb: int = -1,
  1023. axisc: int = -1,
  1024. axis: int | None = None,
  1025. ) -> NDArray[_AnyNumericScalarT]: ...
  1026. @overload
  1027. def cross(
  1028. a: _ArrayLikeInt_co,
  1029. b: _ArrayLikeInt_co,
  1030. axisa: int = -1,
  1031. axisb: int = -1,
  1032. axisc: int = -1,
  1033. axis: int | None = None,
  1034. ) -> NDArray[np.int_ | Any]: ...
  1035. @overload
  1036. def cross(
  1037. a: _ArrayLikeFloat_co,
  1038. b: _ArrayLikeFloat_co,
  1039. axisa: int = -1,
  1040. axisb: int = -1,
  1041. axisc: int = -1,
  1042. axis: int | None = None,
  1043. ) -> NDArray[np.float64 | Any]: ...
  1044. @overload
  1045. def cross(
  1046. a: _ArrayLikeComplex_co,
  1047. b: _ArrayLikeComplex_co,
  1048. axisa: int = -1,
  1049. axisb: int = -1,
  1050. axisc: int = -1,
  1051. axis: int | None = None,
  1052. ) -> NDArray[np.complex128 | Any]: ...
  1053. #
  1054. @overload
  1055. def roll(a: _ArrayT, shift: _ShapeLike, axis: _ShapeLike | None = None) -> _ArrayT: ...
  1056. @overload
  1057. def roll(a: _ArrayLike[_ScalarT], shift: _ShapeLike, axis: _ShapeLike | None = None) -> NDArray[_ScalarT]: ...
  1058. @overload
  1059. def roll(a: ArrayLike, shift: _ShapeLike, axis: _ShapeLike | None = None) -> NDArray[Any]: ...
  1060. #
  1061. def rollaxis(a: _ArrayT, axis: int, start: int = 0) -> _ArrayT: ...
  1062. def moveaxis(a: _ArrayT, source: _ShapeLike, destination: _ShapeLike) -> _ArrayT: ...
  1063. def normalize_axis_tuple(
  1064. axis: int | Iterable[int],
  1065. ndim: int,
  1066. argname: str | None = None,
  1067. allow_duplicate: py_bool | None = False,
  1068. ) -> tuple[int, ...]: ...
  1069. #
  1070. @overload # 0d, dtype=int (default), sparse=False (default)
  1071. def indices(dimensions: tuple[()], dtype: type[int] = int, sparse: L[False] = False) -> _Array1D[np.intp]: ...
  1072. @overload # 0d, dtype=<irrelevant>, sparse=True
  1073. def indices(dimensions: tuple[()], dtype: DTypeLike | None = int, *, sparse: L[True]) -> tuple[()]: ...
  1074. @overload # 0d, dtype=<known>, sparse=False (default)
  1075. def indices(dimensions: tuple[()], dtype: _DTypeLike[_ScalarT], sparse: L[False] = False) -> _Array1D[_ScalarT]: ...
  1076. @overload # 0d, dtype=<unknown>, sparse=False (default)
  1077. def indices(dimensions: tuple[()], dtype: DTypeLike, sparse: L[False] = False) -> _Array1D[Any]: ...
  1078. @overload # 1d, dtype=int (default), sparse=False (default)
  1079. def indices(dimensions: tuple[int], dtype: type[int] = int, sparse: L[False] = False) -> _Array2D[np.intp]: ...
  1080. @overload # 1d, dtype=int (default), sparse=True
  1081. def indices(dimensions: tuple[int], dtype: type[int] = int, *, sparse: L[True]) -> tuple[_Array1D[np.intp]]: ...
  1082. @overload # 1d, dtype=<known>, sparse=False (default)
  1083. def indices(dimensions: tuple[int], dtype: _DTypeLike[_ScalarT], sparse: L[False] = False) -> _Array2D[_ScalarT]: ...
  1084. @overload # 1d, dtype=<known>, sparse=True
  1085. def indices(dimensions: tuple[int], dtype: _DTypeLike[_ScalarT], sparse: L[True]) -> tuple[_Array1D[_ScalarT]]: ...
  1086. @overload # 1d, dtype=<unknown>, sparse=False (default)
  1087. def indices(dimensions: tuple[int], dtype: DTypeLike, sparse: L[False] = False) -> _Array2D[Any]: ...
  1088. @overload # 1d, dtype=<unknown>, sparse=True
  1089. def indices(dimensions: tuple[int], dtype: DTypeLike, sparse: L[True]) -> tuple[_Array1D[Any]]: ...
  1090. @overload # 2d, dtype=int (default), sparse=False (default)
  1091. def indices(dimensions: tuple[int, int], dtype: type[int] = int, sparse: L[False] = False) -> _Array3D[np.intp]: ...
  1092. @overload # 2d, dtype=int (default), sparse=True
  1093. def indices(
  1094. dimensions: tuple[int, int], dtype: type[int] = int, *, sparse: L[True]
  1095. ) -> tuple[_Array2D[np.intp], _Array2D[np.intp]]: ...
  1096. @overload # 2d, dtype=<known>, sparse=False (default)
  1097. def indices(dimensions: tuple[int, int], dtype: _DTypeLike[_ScalarT], sparse: L[False] = False) -> _Array3D[_ScalarT]: ...
  1098. @overload # 2d, dtype=<known>, sparse=True
  1099. def indices(
  1100. dimensions: tuple[int, int], dtype: _DTypeLike[_ScalarT], sparse: L[True]
  1101. ) -> tuple[_Array2D[_ScalarT], _Array2D[_ScalarT]]: ...
  1102. @overload # 2d, dtype=<unknown>, sparse=False (default)
  1103. def indices(dimensions: tuple[int, int], dtype: DTypeLike, sparse: L[False] = False) -> _Array3D[Any]: ...
  1104. @overload # 2d, dtype=<unknown>, sparse=True
  1105. def indices(dimensions: tuple[int, int], dtype: DTypeLike, sparse: L[True]) -> tuple[_Array2D[Any], _Array2D[Any]]: ...
  1106. @overload # ?d, dtype=int (default), sparse=False (default)
  1107. def indices(dimensions: Sequence[int], dtype: type[int] = int, sparse: L[False] = False) -> NDArray[np.intp]: ...
  1108. @overload # ?d, dtype=int (default), sparse=True
  1109. def indices(dimensions: Sequence[int], dtype: type[int] = int, *, sparse: L[True]) -> tuple[NDArray[np.intp], ...]: ...
  1110. @overload # ?d, dtype=<known>, sparse=False (default)
  1111. def indices(dimensions: Sequence[int], dtype: _DTypeLike[_ScalarT], sparse: L[False] = False) -> NDArray[_ScalarT]: ...
  1112. @overload # ?d, dtype=<known>, sparse=True
  1113. def indices(dimensions: Sequence[int], dtype: _DTypeLike[_ScalarT], sparse: L[True]) -> tuple[NDArray[_ScalarT], ...]: ...
  1114. @overload # ?d, dtype=<unknown>, sparse=False (default)
  1115. def indices(dimensions: Sequence[int], dtype: DTypeLike, sparse: L[False] = False) -> ndarray: ...
  1116. @overload # ?d, dtype=<unknown>, sparse=True
  1117. def indices(dimensions: Sequence[int], dtype: DTypeLike, sparse: L[True]) -> tuple[ndarray, ...]: ...
  1118. #
  1119. def fromfunction(
  1120. function: Callable[..., _T],
  1121. shape: Sequence[int],
  1122. *,
  1123. dtype: DTypeLike | None = float,
  1124. like: _SupportsArrayFunc | None = None,
  1125. **kwargs: object,
  1126. ) -> _T: ...
  1127. #
  1128. def isscalar(element: object) -> TypeGuard[generic | complex | str | bytes | memoryview]: ...
  1129. #
  1130. def binary_repr(num: SupportsIndex, width: int | None = None) -> str: ...
  1131. def base_repr(number: SupportsAbs[float], base: float = 2, padding: SupportsIndex | None = 0) -> str: ...
  1132. #
  1133. @overload # dtype: None (default)
  1134. def identity(n: int, dtype: None = None, *, like: _SupportsArrayFunc | None = None) -> _Array2D[np.float64]: ...
  1135. @overload # dtype: known scalar type
  1136. def identity(n: int, dtype: _DTypeLike[_ScalarT], *, like: _SupportsArrayFunc | None = None) -> _Array2D[_ScalarT]: ...
  1137. @overload # dtype: like bool
  1138. def identity(n: int, dtype: _DTypeLikeBool, *, like: _SupportsArrayFunc | None = None) -> _Array2D[np.bool]: ...
  1139. @overload # dtype: like int_
  1140. def identity(n: int, dtype: _DTypeLikeInt, *, like: _SupportsArrayFunc | None = None) -> _Array2D[np.int_ | Any]: ...
  1141. @overload # dtype: like float64
  1142. def identity(n: int, dtype: _DTypeLikeFloat64, *, like: _SupportsArrayFunc | None = None) -> _Array2D[np.float64 | Any]: ...
  1143. @overload # dtype: like complex128
  1144. def identity(n: int, dtype: _DTypeLikeComplex128, *, like: _SupportsArrayFunc | None = None) -> _Array2D[np.complex128 | Any]: ...
  1145. @overload # dtype: unknown
  1146. def identity(n: int, dtype: DTypeLike, *, like: _SupportsArrayFunc | None = None) -> _Array2D[Incomplete]: ...
  1147. #
  1148. def allclose(
  1149. a: ArrayLike,
  1150. b: ArrayLike,
  1151. rtol: ArrayLike = 1e-5,
  1152. atol: ArrayLike = 1e-8,
  1153. equal_nan: py_bool = False,
  1154. ) -> py_bool: ...
  1155. #
  1156. @overload # scalar, scalar
  1157. def isclose(
  1158. a: _NumberLike_co,
  1159. b: _NumberLike_co,
  1160. rtol: ArrayLike = 1e-5,
  1161. atol: ArrayLike = 1e-8,
  1162. equal_nan: py_bool = False,
  1163. ) -> np.bool: ...
  1164. @overload # known shape, same shape or scalar
  1165. def isclose(
  1166. a: np.ndarray[_ShapeT],
  1167. b: np.ndarray[_ShapeT] | _NumberLike_co,
  1168. rtol: ArrayLike = 1e-5,
  1169. atol: ArrayLike = 1e-8,
  1170. equal_nan: py_bool = False,
  1171. ) -> np.ndarray[_ShapeT, np.dtype[np.bool]]: ...
  1172. @overload # same shape or scalar, known shape
  1173. def isclose(
  1174. a: np.ndarray[_ShapeT] | _NumberLike_co,
  1175. b: np.ndarray[_ShapeT],
  1176. rtol: ArrayLike = 1e-5,
  1177. atol: ArrayLike = 1e-8,
  1178. equal_nan: py_bool = False,
  1179. ) -> np.ndarray[_ShapeT, np.dtype[np.bool]]: ...
  1180. @overload # 1d sequence, <=1d array-like
  1181. def isclose(
  1182. a: Sequence[_NumberLike_co],
  1183. b: Sequence[_NumberLike_co] | _NumberLike_co | np.ndarray[tuple[int]],
  1184. rtol: ArrayLike = 1e-5,
  1185. atol: ArrayLike = 1e-8,
  1186. equal_nan: py_bool = False,
  1187. ) -> np.ndarray[tuple[int], np.dtype[np.bool]]: ...
  1188. @overload # <=1d array-like, 1d sequence
  1189. def isclose(
  1190. a: Sequence[_NumberLike_co] | _NumberLike_co | np.ndarray[tuple[int]],
  1191. b: Sequence[_NumberLike_co],
  1192. rtol: ArrayLike = 1e-5,
  1193. atol: ArrayLike = 1e-8,
  1194. equal_nan: py_bool = False,
  1195. ) -> np.ndarray[tuple[int], np.dtype[np.bool]]: ...
  1196. @overload # 2d sequence, <=2d array-like
  1197. def isclose(
  1198. a: Sequence[Sequence[_NumberLike_co]],
  1199. b: Sequence[Sequence[_NumberLike_co]] | Sequence[_NumberLike_co] | _NumberLike_co | np.ndarray[tuple[int] | tuple[int, int]],
  1200. rtol: ArrayLike = 1e-5,
  1201. atol: ArrayLike = 1e-8,
  1202. equal_nan: py_bool = False,
  1203. ) -> np.ndarray[tuple[int], np.dtype[np.bool]]: ...
  1204. @overload # <=2d array-like, 2d sequence
  1205. def isclose(
  1206. b: Sequence[Sequence[_NumberLike_co]] | Sequence[_NumberLike_co] | _NumberLike_co | np.ndarray[tuple[int] | tuple[int, int]],
  1207. a: Sequence[Sequence[_NumberLike_co]],
  1208. rtol: ArrayLike = 1e-5,
  1209. atol: ArrayLike = 1e-8,
  1210. equal_nan: py_bool = False,
  1211. ) -> np.ndarray[tuple[int], np.dtype[np.bool]]: ...
  1212. @overload # unknown shape, unknown shape
  1213. def isclose(
  1214. a: ArrayLike,
  1215. b: ArrayLike,
  1216. rtol: ArrayLike = 1e-5,
  1217. atol: ArrayLike = 1e-8,
  1218. equal_nan: py_bool = False,
  1219. ) -> NDArray[np.bool] | Any: ...
  1220. #
  1221. def array_equal(a1: ArrayLike, a2: ArrayLike, equal_nan: py_bool = False) -> py_bool: ...
  1222. def array_equiv(a1: ArrayLike, a2: ArrayLike) -> py_bool: ...
  1223. #
  1224. @overload
  1225. def astype(
  1226. x: ndarray[_ShapeT],
  1227. dtype: _DTypeLike[_ScalarT],
  1228. /,
  1229. *,
  1230. copy: py_bool = True,
  1231. device: L["cpu"] | None = None,
  1232. ) -> ndarray[_ShapeT, dtype[_ScalarT]]: ...
  1233. @overload
  1234. def astype(
  1235. x: ndarray[_ShapeT],
  1236. dtype: DTypeLike | None,
  1237. /,
  1238. *,
  1239. copy: py_bool = True,
  1240. device: L["cpu"] | None = None,
  1241. ) -> ndarray[_ShapeT]: ...