_generator.pyi 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862
  1. from collections.abc import Callable, MutableSequence
  2. from typing import Any, Literal, TypeAlias, TypeVar, overload
  3. import numpy as np
  4. from numpy import dtype, float32, float64, int64
  5. from numpy._typing import (
  6. ArrayLike,
  7. DTypeLike,
  8. NDArray,
  9. _ArrayLikeFloat_co,
  10. _ArrayLikeInt_co,
  11. _BoolCodes,
  12. _DoubleCodes,
  13. _DTypeLike,
  14. _DTypeLikeBool,
  15. _Float32Codes,
  16. _Float64Codes,
  17. _FloatLike_co,
  18. _Int8Codes,
  19. _Int16Codes,
  20. _Int32Codes,
  21. _Int64Codes,
  22. _IntPCodes,
  23. _ShapeLike,
  24. _SingleCodes,
  25. _SupportsDType,
  26. _UInt8Codes,
  27. _UInt16Codes,
  28. _UInt32Codes,
  29. _UInt64Codes,
  30. _UIntPCodes,
  31. )
  32. from numpy.random import BitGenerator, RandomState, SeedSequence
  33. _IntegerT = TypeVar("_IntegerT", bound=np.integer)
  34. _DTypeLikeFloat32: TypeAlias = (
  35. dtype[float32]
  36. | _SupportsDType[dtype[float32]]
  37. | type[float32]
  38. | _Float32Codes
  39. | _SingleCodes
  40. )
  41. _DTypeLikeFloat64: TypeAlias = (
  42. dtype[float64]
  43. | _SupportsDType[dtype[float64]]
  44. | type[float]
  45. | type[float64]
  46. | _Float64Codes
  47. | _DoubleCodes
  48. )
  49. class Generator:
  50. def __init__(self, bit_generator: BitGenerator) -> None: ...
  51. def __repr__(self) -> str: ...
  52. def __str__(self) -> str: ...
  53. def __getstate__(self) -> None: ...
  54. def __setstate__(self, state: dict[str, Any] | None) -> None: ...
  55. def __reduce__(self) -> tuple[
  56. Callable[[BitGenerator], Generator],
  57. tuple[BitGenerator],
  58. None]: ...
  59. @property
  60. def bit_generator(self) -> BitGenerator: ...
  61. def spawn(self, n_children: int) -> list[Generator]: ...
  62. def bytes(self, length: int) -> bytes: ...
  63. @overload
  64. def standard_normal( # type: ignore[misc]
  65. self,
  66. size: None = None,
  67. dtype: _DTypeLikeFloat32 | _DTypeLikeFloat64 = ...,
  68. out: None = None,
  69. ) -> float: ...
  70. @overload
  71. def standard_normal( # type: ignore[misc]
  72. self,
  73. size: _ShapeLike | None = None,
  74. ) -> NDArray[float64]: ...
  75. @overload
  76. def standard_normal( # type: ignore[misc]
  77. self,
  78. *,
  79. out: NDArray[float64] | None = None,
  80. ) -> NDArray[float64]: ...
  81. @overload
  82. def standard_normal( # type: ignore[misc]
  83. self,
  84. size: _ShapeLike | None = None,
  85. dtype: _DTypeLikeFloat32 = ...,
  86. out: NDArray[float32] | None = None,
  87. ) -> NDArray[float32]: ...
  88. @overload
  89. def standard_normal( # type: ignore[misc]
  90. self,
  91. size: _ShapeLike | None = None,
  92. dtype: _DTypeLikeFloat64 = ...,
  93. out: NDArray[float64] | None = None,
  94. ) -> NDArray[float64]: ...
  95. @overload
  96. def permutation(self, x: int, axis: int = 0) -> NDArray[int64]: ...
  97. @overload
  98. def permutation(self, x: ArrayLike, axis: int = 0) -> NDArray[Any]: ...
  99. @overload
  100. def standard_exponential( # type: ignore[misc]
  101. self,
  102. size: None = None,
  103. dtype: _DTypeLikeFloat32 | _DTypeLikeFloat64 = ...,
  104. method: Literal["zig", "inv"] = "zig",
  105. out: None = None,
  106. ) -> float: ...
  107. @overload
  108. def standard_exponential(
  109. self,
  110. size: _ShapeLike | None = None,
  111. ) -> NDArray[float64]: ...
  112. @overload
  113. def standard_exponential(
  114. self,
  115. *,
  116. out: NDArray[float64] | None = None,
  117. ) -> NDArray[float64]: ...
  118. @overload
  119. def standard_exponential(
  120. self,
  121. size: _ShapeLike | None = None,
  122. *,
  123. method: Literal["zig", "inv"] = "zig",
  124. out: NDArray[float64] | None = None,
  125. ) -> NDArray[float64]: ...
  126. @overload
  127. def standard_exponential(
  128. self,
  129. size: _ShapeLike | None = None,
  130. dtype: _DTypeLikeFloat32 = ...,
  131. method: Literal["zig", "inv"] = "zig",
  132. out: NDArray[float32] | None = None,
  133. ) -> NDArray[float32]: ...
  134. @overload
  135. def standard_exponential(
  136. self,
  137. size: _ShapeLike | None = None,
  138. dtype: _DTypeLikeFloat64 = ...,
  139. method: Literal["zig", "inv"] = "zig",
  140. out: NDArray[float64] | None = None,
  141. ) -> NDArray[float64]: ...
  142. @overload
  143. def random( # type: ignore[misc]
  144. self,
  145. size: None = None,
  146. dtype: _DTypeLikeFloat32 | _DTypeLikeFloat64 = ...,
  147. out: None = None,
  148. ) -> float: ...
  149. @overload
  150. def random(
  151. self,
  152. *,
  153. out: NDArray[float64] | None = None,
  154. ) -> NDArray[float64]: ...
  155. @overload
  156. def random(
  157. self,
  158. size: _ShapeLike | None = None,
  159. *,
  160. out: NDArray[float64] | None = None,
  161. ) -> NDArray[float64]: ...
  162. @overload
  163. def random(
  164. self,
  165. size: _ShapeLike | None = None,
  166. dtype: _DTypeLikeFloat32 = ...,
  167. out: NDArray[float32] | None = None,
  168. ) -> NDArray[float32]: ...
  169. @overload
  170. def random(
  171. self,
  172. size: _ShapeLike | None = None,
  173. dtype: _DTypeLikeFloat64 = ...,
  174. out: NDArray[float64] | None = None,
  175. ) -> NDArray[float64]: ...
  176. @overload
  177. def beta(
  178. self,
  179. a: _FloatLike_co,
  180. b: _FloatLike_co,
  181. size: None = None,
  182. ) -> float: ... # type: ignore[misc]
  183. @overload
  184. def beta(
  185. self,
  186. a: _ArrayLikeFloat_co,
  187. b: _ArrayLikeFloat_co,
  188. size: _ShapeLike | None = None
  189. ) -> NDArray[float64]: ...
  190. @overload
  191. def exponential(self, scale: _FloatLike_co = 1.0, size: None = None) -> float: ... # type: ignore[misc]
  192. @overload
  193. def exponential(self, scale: _ArrayLikeFloat_co = 1.0, size: _ShapeLike | None = None) -> NDArray[float64]: ...
  194. #
  195. @overload
  196. def integers(
  197. self,
  198. low: int,
  199. high: int | None = None,
  200. size: None = None,
  201. dtype: _DTypeLike[np.int64] | _Int64Codes = ...,
  202. endpoint: bool = False,
  203. ) -> np.int64: ...
  204. @overload
  205. def integers(
  206. self,
  207. low: int,
  208. high: int | None = None,
  209. size: None = None,
  210. *,
  211. dtype: type[bool],
  212. endpoint: bool = False,
  213. ) -> bool: ...
  214. @overload
  215. def integers(
  216. self,
  217. low: int,
  218. high: int | None = None,
  219. size: None = None,
  220. *,
  221. dtype: type[int],
  222. endpoint: bool = False,
  223. ) -> int: ...
  224. @overload
  225. def integers(
  226. self,
  227. low: int,
  228. high: int | None = None,
  229. size: None = None,
  230. *,
  231. dtype: _DTypeLike[np.bool] | _BoolCodes,
  232. endpoint: bool = False,
  233. ) -> np.bool: ...
  234. @overload
  235. def integers(
  236. self,
  237. low: int,
  238. high: int | None = None,
  239. size: None = None,
  240. *,
  241. dtype: _DTypeLike[_IntegerT],
  242. endpoint: bool = False,
  243. ) -> _IntegerT: ...
  244. @overload
  245. def integers(
  246. self,
  247. low: _ArrayLikeInt_co,
  248. high: _ArrayLikeInt_co | None = None,
  249. size: _ShapeLike | None = None,
  250. dtype: _DTypeLike[np.int64] | _Int64Codes = ...,
  251. endpoint: bool = False,
  252. ) -> NDArray[np.int64]: ...
  253. @overload
  254. def integers(
  255. self,
  256. low: _ArrayLikeInt_co,
  257. high: _ArrayLikeInt_co | None = None,
  258. size: _ShapeLike | None = None,
  259. *,
  260. dtype: _DTypeLikeBool,
  261. endpoint: bool = False,
  262. ) -> NDArray[np.bool]: ...
  263. @overload
  264. def integers(
  265. self,
  266. low: _ArrayLikeInt_co,
  267. high: _ArrayLikeInt_co | None = None,
  268. size: _ShapeLike | None = None,
  269. *,
  270. dtype: _DTypeLike[_IntegerT],
  271. endpoint: bool = False,
  272. ) -> NDArray[_IntegerT]: ...
  273. @overload
  274. def integers(
  275. self,
  276. low: int,
  277. high: int | None = None,
  278. size: None = None,
  279. *,
  280. dtype: _Int8Codes,
  281. endpoint: bool = False,
  282. ) -> np.int8: ...
  283. @overload
  284. def integers(
  285. self,
  286. low: _ArrayLikeInt_co,
  287. high: _ArrayLikeInt_co | None = None,
  288. size: _ShapeLike | None = None,
  289. *,
  290. dtype: _Int8Codes,
  291. endpoint: bool = False,
  292. ) -> NDArray[np.int8]: ...
  293. @overload
  294. def integers(
  295. self,
  296. low: int,
  297. high: int | None = None,
  298. size: None = None,
  299. *,
  300. dtype: _UInt8Codes,
  301. endpoint: bool = False,
  302. ) -> np.uint8: ...
  303. @overload
  304. def integers(
  305. self,
  306. low: _ArrayLikeInt_co,
  307. high: _ArrayLikeInt_co | None = None,
  308. size: _ShapeLike | None = None,
  309. *,
  310. dtype: _UInt8Codes,
  311. endpoint: bool = False,
  312. ) -> NDArray[np.uint8]: ...
  313. @overload
  314. def integers(
  315. self,
  316. low: int,
  317. high: int | None = None,
  318. size: None = None,
  319. *,
  320. dtype: _Int16Codes,
  321. endpoint: bool = False,
  322. ) -> np.int16: ...
  323. @overload
  324. def integers(
  325. self,
  326. low: _ArrayLikeInt_co,
  327. high: _ArrayLikeInt_co | None = None,
  328. size: _ShapeLike | None = None,
  329. *,
  330. dtype: _Int16Codes,
  331. endpoint: bool = False,
  332. ) -> NDArray[np.int16]: ...
  333. @overload
  334. def integers(
  335. self,
  336. low: int,
  337. high: int | None = None,
  338. size: None = None,
  339. *,
  340. dtype: _UInt16Codes,
  341. endpoint: bool = False,
  342. ) -> np.uint16: ...
  343. @overload
  344. def integers(
  345. self,
  346. low: _ArrayLikeInt_co,
  347. high: _ArrayLikeInt_co | None = None,
  348. size: _ShapeLike | None = None,
  349. *,
  350. dtype: _UInt16Codes,
  351. endpoint: bool = False,
  352. ) -> NDArray[np.uint16]: ...
  353. @overload
  354. def integers(
  355. self,
  356. low: int,
  357. high: int | None = None,
  358. size: None = None,
  359. *,
  360. dtype: _Int32Codes,
  361. endpoint: bool = False,
  362. ) -> np.int32: ...
  363. @overload
  364. def integers(
  365. self,
  366. low: _ArrayLikeInt_co,
  367. high: _ArrayLikeInt_co | None = None,
  368. size: _ShapeLike | None = None,
  369. *,
  370. dtype: _Int32Codes,
  371. endpoint: bool = False,
  372. ) -> NDArray[np.int32]: ...
  373. @overload
  374. def integers(
  375. self,
  376. low: int,
  377. high: int | None = None,
  378. size: None = None,
  379. *,
  380. dtype: _UInt32Codes,
  381. endpoint: bool = False,
  382. ) -> np.uint32: ...
  383. @overload
  384. def integers(
  385. self,
  386. low: _ArrayLikeInt_co,
  387. high: _ArrayLikeInt_co | None = None,
  388. size: _ShapeLike | None = None,
  389. *,
  390. dtype: _UInt32Codes,
  391. endpoint: bool = False,
  392. ) -> NDArray[np.uint32]: ...
  393. @overload
  394. def integers(
  395. self,
  396. low: int,
  397. high: int | None = None,
  398. size: None = None,
  399. *,
  400. dtype: _UInt64Codes,
  401. endpoint: bool = False,
  402. ) -> np.uint64: ...
  403. @overload
  404. def integers(
  405. self,
  406. low: _ArrayLikeInt_co,
  407. high: _ArrayLikeInt_co | None = None,
  408. size: _ShapeLike | None = None,
  409. *,
  410. dtype: _UInt64Codes,
  411. endpoint: bool = False,
  412. ) -> NDArray[np.uint64]: ...
  413. @overload
  414. def integers(
  415. self,
  416. low: int,
  417. high: int | None = None,
  418. size: None = None,
  419. *,
  420. dtype: _IntPCodes,
  421. endpoint: bool = False,
  422. ) -> np.intp: ...
  423. @overload
  424. def integers(
  425. self,
  426. low: _ArrayLikeInt_co,
  427. high: _ArrayLikeInt_co | None = None,
  428. size: _ShapeLike | None = None,
  429. *,
  430. dtype: _IntPCodes,
  431. endpoint: bool = False,
  432. ) -> NDArray[np.intp]: ...
  433. @overload
  434. def integers(
  435. self,
  436. low: int,
  437. high: int | None = None,
  438. size: None = None,
  439. *,
  440. dtype: _UIntPCodes,
  441. endpoint: bool = False,
  442. ) -> np.uintp: ...
  443. @overload
  444. def integers(
  445. self,
  446. low: _ArrayLikeInt_co,
  447. high: _ArrayLikeInt_co | None = None,
  448. size: _ShapeLike | None = None,
  449. *,
  450. dtype: _UIntPCodes,
  451. endpoint: bool = False,
  452. ) -> NDArray[np.uintp]: ...
  453. @overload
  454. def integers(
  455. self,
  456. low: int,
  457. high: int | None = None,
  458. size: None = None,
  459. dtype: DTypeLike | None = ...,
  460. endpoint: bool = False,
  461. ) -> Any: ...
  462. @overload
  463. def integers(
  464. self,
  465. low: _ArrayLikeInt_co,
  466. high: _ArrayLikeInt_co | None = None,
  467. size: _ShapeLike | None = None,
  468. dtype: DTypeLike | None = ...,
  469. endpoint: bool = False,
  470. ) -> NDArray[Any]: ...
  471. # TODO: Use a TypeVar _T here to get away from Any output?
  472. # Should be int->NDArray[int64], ArrayLike[_T] -> _T | NDArray[Any]
  473. @overload
  474. def choice(
  475. self,
  476. a: int,
  477. size: None = None,
  478. replace: bool = True,
  479. p: _ArrayLikeFloat_co | None = None,
  480. axis: int = 0,
  481. shuffle: bool = True,
  482. ) -> int: ...
  483. @overload
  484. def choice(
  485. self,
  486. a: int,
  487. size: _ShapeLike | None = None,
  488. replace: bool = True,
  489. p: _ArrayLikeFloat_co | None = None,
  490. axis: int = 0,
  491. shuffle: bool = True,
  492. ) -> NDArray[int64]: ...
  493. @overload
  494. def choice(
  495. self,
  496. a: ArrayLike,
  497. size: None = None,
  498. replace: bool = True,
  499. p: _ArrayLikeFloat_co | None = None,
  500. axis: int = 0,
  501. shuffle: bool = True,
  502. ) -> Any: ...
  503. @overload
  504. def choice(
  505. self,
  506. a: ArrayLike,
  507. size: _ShapeLike | None = None,
  508. replace: bool = True,
  509. p: _ArrayLikeFloat_co | None = None,
  510. axis: int = 0,
  511. shuffle: bool = True,
  512. ) -> NDArray[Any]: ...
  513. @overload
  514. def uniform(
  515. self,
  516. low: _FloatLike_co = 0.0,
  517. high: _FloatLike_co = 1.0,
  518. size: None = None,
  519. ) -> float: ... # type: ignore[misc]
  520. @overload
  521. def uniform(
  522. self,
  523. low: _ArrayLikeFloat_co = 0.0,
  524. high: _ArrayLikeFloat_co = 1.0,
  525. size: _ShapeLike | None = None,
  526. ) -> NDArray[float64]: ...
  527. @overload
  528. def normal(
  529. self,
  530. loc: _FloatLike_co = 0.0,
  531. scale: _FloatLike_co = 1.0,
  532. size: None = None,
  533. ) -> float: ... # type: ignore[misc]
  534. @overload
  535. def normal(
  536. self,
  537. loc: _ArrayLikeFloat_co = 0.0,
  538. scale: _ArrayLikeFloat_co = 1.0,
  539. size: _ShapeLike | None = None,
  540. ) -> NDArray[float64]: ...
  541. @overload
  542. def standard_gamma( # type: ignore[misc]
  543. self,
  544. shape: _FloatLike_co,
  545. size: None = None,
  546. dtype: _DTypeLikeFloat32 | _DTypeLikeFloat64 = ...,
  547. out: None = None,
  548. ) -> float: ...
  549. @overload
  550. def standard_gamma(
  551. self,
  552. shape: _ArrayLikeFloat_co,
  553. size: _ShapeLike | None = None,
  554. ) -> NDArray[float64]: ...
  555. @overload
  556. def standard_gamma(
  557. self,
  558. shape: _ArrayLikeFloat_co,
  559. *,
  560. out: NDArray[float64] | None = None,
  561. ) -> NDArray[float64]: ...
  562. @overload
  563. def standard_gamma(
  564. self,
  565. shape: _ArrayLikeFloat_co,
  566. size: _ShapeLike | None = None,
  567. dtype: _DTypeLikeFloat32 = ...,
  568. out: NDArray[float32] | None = None,
  569. ) -> NDArray[float32]: ...
  570. @overload
  571. def standard_gamma(
  572. self,
  573. shape: _ArrayLikeFloat_co,
  574. size: _ShapeLike | None = None,
  575. dtype: _DTypeLikeFloat64 = ...,
  576. out: NDArray[float64] | None = None,
  577. ) -> NDArray[float64]: ...
  578. @overload
  579. def gamma(
  580. self, shape: _FloatLike_co, scale: _FloatLike_co = 1.0, size: None = None
  581. ) -> float: ... # type: ignore[misc]
  582. @overload
  583. def gamma(
  584. self,
  585. shape: _ArrayLikeFloat_co,
  586. scale: _ArrayLikeFloat_co = 1.0,
  587. size: _ShapeLike | None = None,
  588. ) -> NDArray[float64]: ...
  589. @overload
  590. def f(
  591. self, dfnum: _FloatLike_co, dfden: _FloatLike_co, size: None = None
  592. ) -> float: ... # type: ignore[misc]
  593. @overload
  594. def f(
  595. self,
  596. dfnum: _ArrayLikeFloat_co,
  597. dfden: _ArrayLikeFloat_co,
  598. size: _ShapeLike | None = None
  599. ) -> NDArray[float64]: ...
  600. @overload
  601. def noncentral_f(
  602. self,
  603. dfnum: _FloatLike_co,
  604. dfden: _FloatLike_co,
  605. nonc: _FloatLike_co,
  606. size: None = None,
  607. ) -> float: ... # type: ignore[misc]
  608. @overload
  609. def noncentral_f(
  610. self,
  611. dfnum: _ArrayLikeFloat_co,
  612. dfden: _ArrayLikeFloat_co,
  613. nonc: _ArrayLikeFloat_co,
  614. size: _ShapeLike | None = None,
  615. ) -> NDArray[float64]: ...
  616. @overload
  617. def chisquare(self, df: _FloatLike_co, size: None = None) -> float: ... # type: ignore[misc]
  618. @overload
  619. def chisquare(
  620. self, df: _ArrayLikeFloat_co, size: _ShapeLike | None = None
  621. ) -> NDArray[float64]: ...
  622. @overload
  623. def noncentral_chisquare(
  624. self, df: _FloatLike_co, nonc: _FloatLike_co, size: None = None
  625. ) -> float: ... # type: ignore[misc]
  626. @overload
  627. def noncentral_chisquare(
  628. self,
  629. df: _ArrayLikeFloat_co,
  630. nonc: _ArrayLikeFloat_co,
  631. size: _ShapeLike | None = None
  632. ) -> NDArray[float64]: ...
  633. @overload
  634. def standard_t(self, df: _FloatLike_co, size: None = None) -> float: ... # type: ignore[misc]
  635. @overload
  636. def standard_t(
  637. self, df: _ArrayLikeFloat_co, size: None = None
  638. ) -> NDArray[float64]: ...
  639. @overload
  640. def standard_t(
  641. self, df: _ArrayLikeFloat_co, size: _ShapeLike | None = None
  642. ) -> NDArray[float64]: ...
  643. @overload
  644. def vonmises(
  645. self, mu: _FloatLike_co, kappa: _FloatLike_co, size: None = None
  646. ) -> float: ... # type: ignore[misc]
  647. @overload
  648. def vonmises(
  649. self,
  650. mu: _ArrayLikeFloat_co,
  651. kappa: _ArrayLikeFloat_co,
  652. size: _ShapeLike | None = None
  653. ) -> NDArray[float64]: ...
  654. @overload
  655. def pareto(self, a: _FloatLike_co, size: None = None) -> float: ... # type: ignore[misc]
  656. @overload
  657. def pareto(
  658. self, a: _ArrayLikeFloat_co, size: _ShapeLike | None = None
  659. ) -> NDArray[float64]: ...
  660. @overload
  661. def weibull(self, a: _FloatLike_co, size: None = None) -> float: ... # type: ignore[misc]
  662. @overload
  663. def weibull(
  664. self, a: _ArrayLikeFloat_co, size: _ShapeLike | None = None
  665. ) -> NDArray[float64]: ...
  666. @overload
  667. def power(self, a: _FloatLike_co, size: None = None) -> float: ... # type: ignore[misc]
  668. @overload
  669. def power(
  670. self, a: _ArrayLikeFloat_co, size: _ShapeLike | None = None
  671. ) -> NDArray[float64]: ...
  672. @overload
  673. def standard_cauchy(self, size: None = None) -> float: ... # type: ignore[misc]
  674. @overload
  675. def standard_cauchy(self, size: _ShapeLike | None = None) -> NDArray[float64]: ...
  676. @overload
  677. def laplace(
  678. self,
  679. loc: _FloatLike_co = 0.0,
  680. scale: _FloatLike_co = 1.0,
  681. size: None = None,
  682. ) -> float: ... # type: ignore[misc]
  683. @overload
  684. def laplace(
  685. self,
  686. loc: _ArrayLikeFloat_co = 0.0,
  687. scale: _ArrayLikeFloat_co = 1.0,
  688. size: _ShapeLike | None = None,
  689. ) -> NDArray[float64]: ...
  690. @overload
  691. def gumbel(
  692. self,
  693. loc: _FloatLike_co = 0.0,
  694. scale: _FloatLike_co = 1.0,
  695. size: None = None,
  696. ) -> float: ... # type: ignore[misc]
  697. @overload
  698. def gumbel(
  699. self,
  700. loc: _ArrayLikeFloat_co = 0.0,
  701. scale: _ArrayLikeFloat_co = 1.0,
  702. size: _ShapeLike | None = None,
  703. ) -> NDArray[float64]: ...
  704. @overload
  705. def logistic(
  706. self,
  707. loc: _FloatLike_co = 0.0,
  708. scale: _FloatLike_co = 1.0,
  709. size: None = None,
  710. ) -> float: ... # type: ignore[misc]
  711. @overload
  712. def logistic(
  713. self,
  714. loc: _ArrayLikeFloat_co = 0.0,
  715. scale: _ArrayLikeFloat_co = 1.0,
  716. size: _ShapeLike | None = None,
  717. ) -> NDArray[float64]: ...
  718. @overload
  719. def lognormal(
  720. self,
  721. mean: _FloatLike_co = 0.0,
  722. sigma: _FloatLike_co = 1.0,
  723. size: None = None,
  724. ) -> float: ... # type: ignore[misc]
  725. @overload
  726. def lognormal(
  727. self,
  728. mean: _ArrayLikeFloat_co = 0.0,
  729. sigma: _ArrayLikeFloat_co = 1.0,
  730. size: _ShapeLike | None = None,
  731. ) -> NDArray[float64]: ...
  732. @overload
  733. def rayleigh(self, scale: _FloatLike_co = 1.0, size: None = None) -> float: ... # type: ignore[misc]
  734. @overload
  735. def rayleigh(
  736. self, scale: _ArrayLikeFloat_co = 1.0, size: _ShapeLike | None = None
  737. ) -> NDArray[float64]: ...
  738. @overload
  739. def wald(
  740. self, mean: _FloatLike_co, scale: _FloatLike_co, size: None = None
  741. ) -> float: ... # type: ignore[misc]
  742. @overload
  743. def wald(
  744. self,
  745. mean: _ArrayLikeFloat_co,
  746. scale: _ArrayLikeFloat_co,
  747. size: _ShapeLike | None = None
  748. ) -> NDArray[float64]: ...
  749. @overload
  750. def triangular(
  751. self,
  752. left: _FloatLike_co,
  753. mode: _FloatLike_co,
  754. right: _FloatLike_co,
  755. size: None = None,
  756. ) -> float: ... # type: ignore[misc]
  757. @overload
  758. def triangular(
  759. self,
  760. left: _ArrayLikeFloat_co,
  761. mode: _ArrayLikeFloat_co,
  762. right: _ArrayLikeFloat_co,
  763. size: _ShapeLike | None = None,
  764. ) -> NDArray[float64]: ...
  765. @overload
  766. def binomial(self, n: int, p: _FloatLike_co, size: None = None) -> int: ... # type: ignore[misc]
  767. @overload
  768. def binomial(
  769. self, n: _ArrayLikeInt_co, p: _ArrayLikeFloat_co, size: _ShapeLike | None = None
  770. ) -> NDArray[int64]: ...
  771. @overload
  772. def negative_binomial(
  773. self, n: _FloatLike_co, p: _FloatLike_co, size: None = None
  774. ) -> int: ... # type: ignore[misc]
  775. @overload
  776. def negative_binomial(
  777. self,
  778. n: _ArrayLikeFloat_co,
  779. p: _ArrayLikeFloat_co,
  780. size: _ShapeLike | None = None
  781. ) -> NDArray[int64]: ...
  782. @overload
  783. def poisson(self, lam: _FloatLike_co = 1.0, size: None = None) -> int: ... # type: ignore[misc]
  784. @overload
  785. def poisson(
  786. self, lam: _ArrayLikeFloat_co = 1.0, size: _ShapeLike | None = None
  787. ) -> NDArray[int64]: ...
  788. @overload
  789. def zipf(self, a: _FloatLike_co, size: None = None) -> int: ... # type: ignore[misc]
  790. @overload
  791. def zipf(
  792. self, a: _ArrayLikeFloat_co, size: _ShapeLike | None = None
  793. ) -> NDArray[int64]: ...
  794. @overload
  795. def geometric(self, p: _FloatLike_co, size: None = None) -> int: ... # type: ignore[misc]
  796. @overload
  797. def geometric(
  798. self, p: _ArrayLikeFloat_co, size: _ShapeLike | None = None
  799. ) -> NDArray[int64]: ...
  800. @overload
  801. def hypergeometric(
  802. self, ngood: int, nbad: int, nsample: int, size: None = None
  803. ) -> int: ... # type: ignore[misc]
  804. @overload
  805. def hypergeometric(
  806. self,
  807. ngood: _ArrayLikeInt_co,
  808. nbad: _ArrayLikeInt_co,
  809. nsample: _ArrayLikeInt_co,
  810. size: _ShapeLike | None = None,
  811. ) -> NDArray[int64]: ...
  812. @overload
  813. def logseries(self, p: _FloatLike_co, size: None = None) -> int: ... # type: ignore[misc]
  814. @overload
  815. def logseries(
  816. self, p: _ArrayLikeFloat_co, size: _ShapeLike | None = None
  817. ) -> NDArray[int64]: ...
  818. def multivariate_normal(
  819. self,
  820. mean: _ArrayLikeFloat_co,
  821. cov: _ArrayLikeFloat_co,
  822. size: _ShapeLike | None = None,
  823. check_valid: Literal["warn", "raise", "ignore"] = "warn",
  824. tol: float = 1e-8,
  825. *,
  826. method: Literal["svd", "eigh", "cholesky"] = "svd",
  827. ) -> NDArray[float64]: ...
  828. def multinomial(
  829. self, n: _ArrayLikeInt_co,
  830. pvals: _ArrayLikeFloat_co,
  831. size: _ShapeLike | None = None
  832. ) -> NDArray[int64]: ...
  833. def multivariate_hypergeometric(
  834. self,
  835. colors: _ArrayLikeInt_co,
  836. nsample: int,
  837. size: _ShapeLike | None = None,
  838. method: Literal["marginals", "count"] = "marginals",
  839. ) -> NDArray[int64]: ...
  840. def dirichlet(
  841. self, alpha: _ArrayLikeFloat_co, size: _ShapeLike | None = None
  842. ) -> NDArray[float64]: ...
  843. def permuted(
  844. self, x: ArrayLike, *, axis: int | None = None, out: NDArray[Any] | None = None
  845. ) -> NDArray[Any]: ...
  846. # axis must be 0 for MutableSequence
  847. @overload
  848. def shuffle(self, /, x: np.ndarray, axis: int = 0) -> None: ...
  849. @overload
  850. def shuffle(self, /, x: MutableSequence[Any], axis: Literal[0] = 0) -> None: ...
  851. def default_rng(
  852. seed: _ArrayLikeInt_co | SeedSequence | BitGenerator | Generator | RandomState | None = None
  853. ) -> Generator: ...