algos.pyi 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. from typing import Any
  2. import numpy as np
  3. from pandas._typing import npt
  4. class Infinity:
  5. """
  6. Provide a positive Infinity comparison method for ranking.
  7. """
  8. def __eq__(self, other) -> bool: ...
  9. def __ne__(self, other) -> bool: ...
  10. def __lt__(self, other) -> bool: ...
  11. def __le__(self, other) -> bool: ...
  12. def __gt__(self, other) -> bool: ...
  13. def __ge__(self, other) -> bool: ...
  14. class NegInfinity:
  15. """
  16. Provide a negative Infinity comparison method for ranking.
  17. """
  18. def __eq__(self, other) -> bool: ...
  19. def __ne__(self, other) -> bool: ...
  20. def __lt__(self, other) -> bool: ...
  21. def __le__(self, other) -> bool: ...
  22. def __gt__(self, other) -> bool: ...
  23. def __ge__(self, other) -> bool: ...
  24. def unique_deltas(
  25. arr: np.ndarray, # const int64_t[:]
  26. ) -> np.ndarray: ... # np.ndarray[np.int64, ndim=1]
  27. def is_lexsorted(list_of_arrays: list[npt.NDArray[np.int64]]) -> bool: ...
  28. def groupsort_indexer(
  29. index: np.ndarray, # const int64_t[:]
  30. ngroups: int,
  31. ) -> tuple[
  32. np.ndarray, # ndarray[int64_t, ndim=1]
  33. np.ndarray, # ndarray[int64_t, ndim=1]
  34. ]: ...
  35. def kth_smallest(
  36. arr: np.ndarray, # numeric[:]
  37. k: int,
  38. ) -> Any: ... # numeric
  39. # ----------------------------------------------------------------------
  40. # Pairwise correlation/covariance
  41. def nancorr(
  42. mat: npt.NDArray[np.float64], # const float64_t[:, :]
  43. cov: bool = ...,
  44. minp: int | None = ...,
  45. ) -> npt.NDArray[np.float64]: ... # ndarray[float64_t, ndim=2]
  46. def nancorr_spearman(
  47. mat: npt.NDArray[np.float64], # ndarray[float64_t, ndim=2]
  48. minp: int = ...,
  49. ) -> npt.NDArray[np.float64]: ... # ndarray[float64_t, ndim=2]
  50. # ----------------------------------------------------------------------
  51. def validate_limit(nobs: int | None, limit=...) -> int: ...
  52. def pad(
  53. old: np.ndarray, # ndarray[numeric_object_t]
  54. new: np.ndarray, # ndarray[numeric_object_t]
  55. limit=...,
  56. ) -> npt.NDArray[np.intp]: ... # np.ndarray[np.intp, ndim=1]
  57. def pad_inplace(
  58. values: np.ndarray, # numeric_object_t[:]
  59. mask: np.ndarray, # uint8_t[:]
  60. limit=...,
  61. ) -> None: ...
  62. def pad_2d_inplace(
  63. values: np.ndarray, # numeric_object_t[:, :]
  64. mask: np.ndarray, # const uint8_t[:, :]
  65. limit=...,
  66. ) -> None: ...
  67. def backfill(
  68. old: np.ndarray, # ndarray[numeric_object_t]
  69. new: np.ndarray, # ndarray[numeric_object_t]
  70. limit=...,
  71. ) -> npt.NDArray[np.intp]: ... # np.ndarray[np.intp, ndim=1]
  72. def backfill_inplace(
  73. values: np.ndarray, # numeric_object_t[:]
  74. mask: np.ndarray, # uint8_t[:]
  75. limit=...,
  76. ) -> None: ...
  77. def backfill_2d_inplace(
  78. values: np.ndarray, # numeric_object_t[:, :]
  79. mask: np.ndarray, # const uint8_t[:, :]
  80. limit=...,
  81. ) -> None: ...
  82. def is_monotonic(
  83. arr: np.ndarray, # ndarray[numeric_object_t, ndim=1]
  84. timelike: bool,
  85. ) -> tuple[bool, bool, bool]: ...
  86. # ----------------------------------------------------------------------
  87. # rank_1d, rank_2d
  88. # ----------------------------------------------------------------------
  89. def rank_1d(
  90. values: np.ndarray, # ndarray[numeric_object_t, ndim=1]
  91. labels: np.ndarray | None = ..., # const int64_t[:]=None
  92. is_datetimelike: bool = ...,
  93. ties_method=...,
  94. ascending: bool = ...,
  95. pct: bool = ...,
  96. na_option=...,
  97. mask: npt.NDArray[np.bool_] | None = ...,
  98. ) -> np.ndarray: ... # np.ndarray[float64_t, ndim=1]
  99. def rank_2d(
  100. in_arr: np.ndarray, # ndarray[numeric_object_t, ndim=2]
  101. axis: int = ...,
  102. is_datetimelike: bool = ...,
  103. ties_method=...,
  104. ascending: bool = ...,
  105. na_option=...,
  106. pct: bool = ...,
  107. ) -> np.ndarray: ... # np.ndarray[float64_t, ndim=1]
  108. def diff_2d(
  109. arr: np.ndarray, # ndarray[diff_t, ndim=2]
  110. out: np.ndarray, # ndarray[out_t, ndim=2]
  111. periods: int,
  112. axis: int,
  113. datetimelike: bool = ...,
  114. ) -> None: ...
  115. def ensure_platform_int(arr: object) -> npt.NDArray[np.intp]: ...
  116. def ensure_object(arr: object) -> npt.NDArray[np.object_]: ...
  117. def ensure_float64(arr: object) -> npt.NDArray[np.float64]: ...
  118. def ensure_int8(arr: object) -> npt.NDArray[np.int8]: ...
  119. def ensure_int16(arr: object) -> npt.NDArray[np.int16]: ...
  120. def ensure_int32(arr: object) -> npt.NDArray[np.int32]: ...
  121. def ensure_int64(arr: object) -> npt.NDArray[np.int64]: ...
  122. def ensure_uint64(arr: object) -> npt.NDArray[np.uint64]: ...
  123. def take_1d_int8_int8(
  124. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  125. ) -> None: ...
  126. def take_1d_int8_int32(
  127. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  128. ) -> None: ...
  129. def take_1d_int8_int64(
  130. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  131. ) -> None: ...
  132. def take_1d_int8_float64(
  133. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  134. ) -> None: ...
  135. def take_1d_int16_int16(
  136. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  137. ) -> None: ...
  138. def take_1d_int16_int32(
  139. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  140. ) -> None: ...
  141. def take_1d_int16_int64(
  142. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  143. ) -> None: ...
  144. def take_1d_int16_float64(
  145. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  146. ) -> None: ...
  147. def take_1d_int32_int32(
  148. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  149. ) -> None: ...
  150. def take_1d_int32_int64(
  151. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  152. ) -> None: ...
  153. def take_1d_int32_float64(
  154. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  155. ) -> None: ...
  156. def take_1d_int64_int64(
  157. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  158. ) -> None: ...
  159. def take_1d_int64_float64(
  160. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  161. ) -> None: ...
  162. def take_1d_float32_float32(
  163. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  164. ) -> None: ...
  165. def take_1d_float32_float64(
  166. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  167. ) -> None: ...
  168. def take_1d_float64_float64(
  169. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  170. ) -> None: ...
  171. def take_1d_object_object(
  172. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  173. ) -> None: ...
  174. def take_1d_bool_bool(
  175. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  176. ) -> None: ...
  177. def take_1d_bool_object(
  178. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  179. ) -> None: ...
  180. def take_2d_axis0_int8_int8(
  181. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  182. ) -> None: ...
  183. def take_2d_axis0_int8_int32(
  184. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  185. ) -> None: ...
  186. def take_2d_axis0_int8_int64(
  187. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  188. ) -> None: ...
  189. def take_2d_axis0_int8_float64(
  190. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  191. ) -> None: ...
  192. def take_2d_axis0_int16_int16(
  193. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  194. ) -> None: ...
  195. def take_2d_axis0_int16_int32(
  196. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  197. ) -> None: ...
  198. def take_2d_axis0_int16_int64(
  199. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  200. ) -> None: ...
  201. def take_2d_axis0_int16_float64(
  202. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  203. ) -> None: ...
  204. def take_2d_axis0_int32_int32(
  205. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  206. ) -> None: ...
  207. def take_2d_axis0_int32_int64(
  208. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  209. ) -> None: ...
  210. def take_2d_axis0_int32_float64(
  211. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  212. ) -> None: ...
  213. def take_2d_axis0_int64_int64(
  214. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  215. ) -> None: ...
  216. def take_2d_axis0_int64_float64(
  217. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  218. ) -> None: ...
  219. def take_2d_axis0_float32_float32(
  220. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  221. ) -> None: ...
  222. def take_2d_axis0_float32_float64(
  223. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  224. ) -> None: ...
  225. def take_2d_axis0_float64_float64(
  226. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  227. ) -> None: ...
  228. def take_2d_axis0_object_object(
  229. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  230. ) -> None: ...
  231. def take_2d_axis0_bool_bool(
  232. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  233. ) -> None: ...
  234. def take_2d_axis0_bool_object(
  235. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  236. ) -> None: ...
  237. def take_2d_axis1_int8_int8(
  238. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  239. ) -> None: ...
  240. def take_2d_axis1_int8_int32(
  241. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  242. ) -> None: ...
  243. def take_2d_axis1_int8_int64(
  244. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  245. ) -> None: ...
  246. def take_2d_axis1_int8_float64(
  247. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  248. ) -> None: ...
  249. def take_2d_axis1_int16_int16(
  250. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  251. ) -> None: ...
  252. def take_2d_axis1_int16_int32(
  253. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  254. ) -> None: ...
  255. def take_2d_axis1_int16_int64(
  256. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  257. ) -> None: ...
  258. def take_2d_axis1_int16_float64(
  259. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  260. ) -> None: ...
  261. def take_2d_axis1_int32_int32(
  262. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  263. ) -> None: ...
  264. def take_2d_axis1_int32_int64(
  265. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  266. ) -> None: ...
  267. def take_2d_axis1_int32_float64(
  268. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  269. ) -> None: ...
  270. def take_2d_axis1_int64_int64(
  271. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  272. ) -> None: ...
  273. def take_2d_axis1_int64_float64(
  274. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  275. ) -> None: ...
  276. def take_2d_axis1_float32_float32(
  277. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  278. ) -> None: ...
  279. def take_2d_axis1_float32_float64(
  280. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  281. ) -> None: ...
  282. def take_2d_axis1_float64_float64(
  283. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  284. ) -> None: ...
  285. def take_2d_axis1_object_object(
  286. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  287. ) -> None: ...
  288. def take_2d_axis1_bool_bool(
  289. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  290. ) -> None: ...
  291. def take_2d_axis1_bool_object(
  292. values: np.ndarray, indexer: npt.NDArray[np.intp], out: np.ndarray, fill_value=...
  293. ) -> None: ...
  294. def take_2d_multi_int8_int8(
  295. values: np.ndarray,
  296. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  297. out: np.ndarray,
  298. fill_value=...,
  299. ) -> None: ...
  300. def take_2d_multi_int8_int32(
  301. values: np.ndarray,
  302. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  303. out: np.ndarray,
  304. fill_value=...,
  305. ) -> None: ...
  306. def take_2d_multi_int8_int64(
  307. values: np.ndarray,
  308. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  309. out: np.ndarray,
  310. fill_value=...,
  311. ) -> None: ...
  312. def take_2d_multi_int8_float64(
  313. values: np.ndarray,
  314. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  315. out: np.ndarray,
  316. fill_value=...,
  317. ) -> None: ...
  318. def take_2d_multi_int16_int16(
  319. values: np.ndarray,
  320. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  321. out: np.ndarray,
  322. fill_value=...,
  323. ) -> None: ...
  324. def take_2d_multi_int16_int32(
  325. values: np.ndarray,
  326. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  327. out: np.ndarray,
  328. fill_value=...,
  329. ) -> None: ...
  330. def take_2d_multi_int16_int64(
  331. values: np.ndarray,
  332. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  333. out: np.ndarray,
  334. fill_value=...,
  335. ) -> None: ...
  336. def take_2d_multi_int16_float64(
  337. values: np.ndarray,
  338. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  339. out: np.ndarray,
  340. fill_value=...,
  341. ) -> None: ...
  342. def take_2d_multi_int32_int32(
  343. values: np.ndarray,
  344. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  345. out: np.ndarray,
  346. fill_value=...,
  347. ) -> None: ...
  348. def take_2d_multi_int32_int64(
  349. values: np.ndarray,
  350. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  351. out: np.ndarray,
  352. fill_value=...,
  353. ) -> None: ...
  354. def take_2d_multi_int32_float64(
  355. values: np.ndarray,
  356. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  357. out: np.ndarray,
  358. fill_value=...,
  359. ) -> None: ...
  360. def take_2d_multi_int64_float64(
  361. values: np.ndarray,
  362. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  363. out: np.ndarray,
  364. fill_value=...,
  365. ) -> None: ...
  366. def take_2d_multi_float32_float32(
  367. values: np.ndarray,
  368. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  369. out: np.ndarray,
  370. fill_value=...,
  371. ) -> None: ...
  372. def take_2d_multi_float32_float64(
  373. values: np.ndarray,
  374. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  375. out: np.ndarray,
  376. fill_value=...,
  377. ) -> None: ...
  378. def take_2d_multi_float64_float64(
  379. values: np.ndarray,
  380. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  381. out: np.ndarray,
  382. fill_value=...,
  383. ) -> None: ...
  384. def take_2d_multi_object_object(
  385. values: np.ndarray,
  386. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  387. out: np.ndarray,
  388. fill_value=...,
  389. ) -> None: ...
  390. def take_2d_multi_bool_bool(
  391. values: np.ndarray,
  392. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  393. out: np.ndarray,
  394. fill_value=...,
  395. ) -> None: ...
  396. def take_2d_multi_bool_object(
  397. values: np.ndarray,
  398. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  399. out: np.ndarray,
  400. fill_value=...,
  401. ) -> None: ...
  402. def take_2d_multi_int64_int64(
  403. values: np.ndarray,
  404. indexer: tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]],
  405. out: np.ndarray,
  406. fill_value=...,
  407. ) -> None: ...