maxframe 0.1.0b5__cp39-cp39-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of maxframe might be problematic. Click here for more details.

Files changed (647) hide show
  1. maxframe/__init__.py +32 -0
  2. maxframe/_utils.cpython-39-darwin.so +0 -0
  3. maxframe/_utils.pxd +33 -0
  4. maxframe/_utils.pyx +547 -0
  5. maxframe/codegen.py +528 -0
  6. maxframe/config/__init__.py +15 -0
  7. maxframe/config/config.py +443 -0
  8. maxframe/config/tests/__init__.py +13 -0
  9. maxframe/config/tests/test_config.py +103 -0
  10. maxframe/config/tests/test_validators.py +34 -0
  11. maxframe/config/validators.py +57 -0
  12. maxframe/conftest.py +139 -0
  13. maxframe/core/__init__.py +65 -0
  14. maxframe/core/base.py +156 -0
  15. maxframe/core/entity/__init__.py +44 -0
  16. maxframe/core/entity/chunks.py +68 -0
  17. maxframe/core/entity/core.py +152 -0
  18. maxframe/core/entity/executable.py +337 -0
  19. maxframe/core/entity/fuse.py +73 -0
  20. maxframe/core/entity/objects.py +100 -0
  21. maxframe/core/entity/output_types.py +90 -0
  22. maxframe/core/entity/tileables.py +438 -0
  23. maxframe/core/entity/utils.py +24 -0
  24. maxframe/core/graph/__init__.py +17 -0
  25. maxframe/core/graph/builder/__init__.py +16 -0
  26. maxframe/core/graph/builder/base.py +86 -0
  27. maxframe/core/graph/builder/chunk.py +430 -0
  28. maxframe/core/graph/builder/tileable.py +34 -0
  29. maxframe/core/graph/builder/utils.py +41 -0
  30. maxframe/core/graph/core.cpython-39-darwin.so +0 -0
  31. maxframe/core/graph/core.pyx +467 -0
  32. maxframe/core/graph/entity.py +171 -0
  33. maxframe/core/graph/tests/__init__.py +13 -0
  34. maxframe/core/graph/tests/test_graph.py +205 -0
  35. maxframe/core/mode.py +96 -0
  36. maxframe/core/operator/__init__.py +34 -0
  37. maxframe/core/operator/base.py +450 -0
  38. maxframe/core/operator/core.py +276 -0
  39. maxframe/core/operator/fetch.py +53 -0
  40. maxframe/core/operator/fuse.py +29 -0
  41. maxframe/core/operator/objects.py +72 -0
  42. maxframe/core/operator/shuffle.py +111 -0
  43. maxframe/core/operator/tests/__init__.py +13 -0
  44. maxframe/core/operator/tests/test_core.py +64 -0
  45. maxframe/core/tests/__init__.py +13 -0
  46. maxframe/core/tests/test_mode.py +75 -0
  47. maxframe/dataframe/__init__.py +81 -0
  48. maxframe/dataframe/arithmetic/__init__.py +359 -0
  49. maxframe/dataframe/arithmetic/abs.py +33 -0
  50. maxframe/dataframe/arithmetic/add.py +60 -0
  51. maxframe/dataframe/arithmetic/arccos.py +28 -0
  52. maxframe/dataframe/arithmetic/arccosh.py +28 -0
  53. maxframe/dataframe/arithmetic/arcsin.py +28 -0
  54. maxframe/dataframe/arithmetic/arcsinh.py +28 -0
  55. maxframe/dataframe/arithmetic/arctan.py +28 -0
  56. maxframe/dataframe/arithmetic/arctanh.py +28 -0
  57. maxframe/dataframe/arithmetic/around.py +152 -0
  58. maxframe/dataframe/arithmetic/bitwise_and.py +46 -0
  59. maxframe/dataframe/arithmetic/bitwise_or.py +50 -0
  60. maxframe/dataframe/arithmetic/bitwise_xor.py +46 -0
  61. maxframe/dataframe/arithmetic/ceil.py +28 -0
  62. maxframe/dataframe/arithmetic/core.py +342 -0
  63. maxframe/dataframe/arithmetic/cos.py +28 -0
  64. maxframe/dataframe/arithmetic/cosh.py +28 -0
  65. maxframe/dataframe/arithmetic/degrees.py +28 -0
  66. maxframe/dataframe/arithmetic/docstring.py +442 -0
  67. maxframe/dataframe/arithmetic/equal.py +56 -0
  68. maxframe/dataframe/arithmetic/exp.py +28 -0
  69. maxframe/dataframe/arithmetic/exp2.py +28 -0
  70. maxframe/dataframe/arithmetic/expm1.py +28 -0
  71. maxframe/dataframe/arithmetic/floor.py +28 -0
  72. maxframe/dataframe/arithmetic/floordiv.py +64 -0
  73. maxframe/dataframe/arithmetic/greater.py +57 -0
  74. maxframe/dataframe/arithmetic/greater_equal.py +57 -0
  75. maxframe/dataframe/arithmetic/invert.py +33 -0
  76. maxframe/dataframe/arithmetic/is_ufuncs.py +62 -0
  77. maxframe/dataframe/arithmetic/less.py +57 -0
  78. maxframe/dataframe/arithmetic/less_equal.py +57 -0
  79. maxframe/dataframe/arithmetic/log.py +28 -0
  80. maxframe/dataframe/arithmetic/log10.py +28 -0
  81. maxframe/dataframe/arithmetic/log2.py +28 -0
  82. maxframe/dataframe/arithmetic/mod.py +60 -0
  83. maxframe/dataframe/arithmetic/multiply.py +60 -0
  84. maxframe/dataframe/arithmetic/negative.py +33 -0
  85. maxframe/dataframe/arithmetic/not_equal.py +56 -0
  86. maxframe/dataframe/arithmetic/power.py +68 -0
  87. maxframe/dataframe/arithmetic/radians.py +28 -0
  88. maxframe/dataframe/arithmetic/sin.py +28 -0
  89. maxframe/dataframe/arithmetic/sinh.py +28 -0
  90. maxframe/dataframe/arithmetic/sqrt.py +28 -0
  91. maxframe/dataframe/arithmetic/subtract.py +64 -0
  92. maxframe/dataframe/arithmetic/tan.py +28 -0
  93. maxframe/dataframe/arithmetic/tanh.py +28 -0
  94. maxframe/dataframe/arithmetic/tests/__init__.py +13 -0
  95. maxframe/dataframe/arithmetic/tests/test_arithmetic.py +695 -0
  96. maxframe/dataframe/arithmetic/truediv.py +64 -0
  97. maxframe/dataframe/arithmetic/trunc.py +28 -0
  98. maxframe/dataframe/arrays.py +864 -0
  99. maxframe/dataframe/core.py +2417 -0
  100. maxframe/dataframe/datasource/__init__.py +15 -0
  101. maxframe/dataframe/datasource/core.py +81 -0
  102. maxframe/dataframe/datasource/dataframe.py +59 -0
  103. maxframe/dataframe/datasource/date_range.py +504 -0
  104. maxframe/dataframe/datasource/from_index.py +54 -0
  105. maxframe/dataframe/datasource/from_records.py +107 -0
  106. maxframe/dataframe/datasource/from_tensor.py +419 -0
  107. maxframe/dataframe/datasource/index.py +117 -0
  108. maxframe/dataframe/datasource/read_csv.py +528 -0
  109. maxframe/dataframe/datasource/read_odps_query.py +299 -0
  110. maxframe/dataframe/datasource/read_odps_table.py +253 -0
  111. maxframe/dataframe/datasource/read_parquet.py +421 -0
  112. maxframe/dataframe/datasource/series.py +55 -0
  113. maxframe/dataframe/datasource/tests/__init__.py +13 -0
  114. maxframe/dataframe/datasource/tests/test_datasource.py +401 -0
  115. maxframe/dataframe/datastore/__init__.py +26 -0
  116. maxframe/dataframe/datastore/core.py +19 -0
  117. maxframe/dataframe/datastore/to_csv.py +227 -0
  118. maxframe/dataframe/datastore/to_odps.py +162 -0
  119. maxframe/dataframe/extensions/__init__.py +41 -0
  120. maxframe/dataframe/extensions/accessor.py +50 -0
  121. maxframe/dataframe/extensions/reshuffle.py +83 -0
  122. maxframe/dataframe/extensions/tests/__init__.py +13 -0
  123. maxframe/dataframe/extensions/tests/test_extensions.py +38 -0
  124. maxframe/dataframe/fetch/__init__.py +15 -0
  125. maxframe/dataframe/fetch/core.py +86 -0
  126. maxframe/dataframe/groupby/__init__.py +82 -0
  127. maxframe/dataframe/groupby/aggregation.py +350 -0
  128. maxframe/dataframe/groupby/apply.py +251 -0
  129. maxframe/dataframe/groupby/core.py +179 -0
  130. maxframe/dataframe/groupby/cum.py +124 -0
  131. maxframe/dataframe/groupby/fill.py +141 -0
  132. maxframe/dataframe/groupby/getitem.py +92 -0
  133. maxframe/dataframe/groupby/head.py +105 -0
  134. maxframe/dataframe/groupby/sample.py +214 -0
  135. maxframe/dataframe/groupby/tests/__init__.py +13 -0
  136. maxframe/dataframe/groupby/tests/test_groupby.py +374 -0
  137. maxframe/dataframe/groupby/transform.py +255 -0
  138. maxframe/dataframe/indexing/__init__.py +84 -0
  139. maxframe/dataframe/indexing/add_prefix_suffix.py +110 -0
  140. maxframe/dataframe/indexing/align.py +349 -0
  141. maxframe/dataframe/indexing/at.py +83 -0
  142. maxframe/dataframe/indexing/getitem.py +204 -0
  143. maxframe/dataframe/indexing/iat.py +37 -0
  144. maxframe/dataframe/indexing/iloc.py +566 -0
  145. maxframe/dataframe/indexing/insert.py +86 -0
  146. maxframe/dataframe/indexing/loc.py +411 -0
  147. maxframe/dataframe/indexing/reindex.py +526 -0
  148. maxframe/dataframe/indexing/rename.py +462 -0
  149. maxframe/dataframe/indexing/rename_axis.py +209 -0
  150. maxframe/dataframe/indexing/reset_index.py +402 -0
  151. maxframe/dataframe/indexing/sample.py +221 -0
  152. maxframe/dataframe/indexing/set_axis.py +194 -0
  153. maxframe/dataframe/indexing/set_index.py +61 -0
  154. maxframe/dataframe/indexing/setitem.py +130 -0
  155. maxframe/dataframe/indexing/tests/__init__.py +13 -0
  156. maxframe/dataframe/indexing/tests/test_indexing.py +488 -0
  157. maxframe/dataframe/indexing/where.py +308 -0
  158. maxframe/dataframe/initializer.py +288 -0
  159. maxframe/dataframe/merge/__init__.py +32 -0
  160. maxframe/dataframe/merge/append.py +121 -0
  161. maxframe/dataframe/merge/concat.py +325 -0
  162. maxframe/dataframe/merge/merge.py +593 -0
  163. maxframe/dataframe/merge/tests/__init__.py +13 -0
  164. maxframe/dataframe/merge/tests/test_merge.py +215 -0
  165. maxframe/dataframe/misc/__init__.py +134 -0
  166. maxframe/dataframe/misc/_duplicate.py +46 -0
  167. maxframe/dataframe/misc/accessor.py +276 -0
  168. maxframe/dataframe/misc/apply.py +692 -0
  169. maxframe/dataframe/misc/astype.py +236 -0
  170. maxframe/dataframe/misc/case_when.py +141 -0
  171. maxframe/dataframe/misc/check_monotonic.py +84 -0
  172. maxframe/dataframe/misc/cut.py +383 -0
  173. maxframe/dataframe/misc/datetimes.py +79 -0
  174. maxframe/dataframe/misc/describe.py +108 -0
  175. maxframe/dataframe/misc/diff.py +210 -0
  176. maxframe/dataframe/misc/drop.py +440 -0
  177. maxframe/dataframe/misc/drop_duplicates.py +248 -0
  178. maxframe/dataframe/misc/duplicated.py +292 -0
  179. maxframe/dataframe/misc/eval.py +728 -0
  180. maxframe/dataframe/misc/explode.py +171 -0
  181. maxframe/dataframe/misc/get_dummies.py +208 -0
  182. maxframe/dataframe/misc/isin.py +217 -0
  183. maxframe/dataframe/misc/map.py +236 -0
  184. maxframe/dataframe/misc/melt.py +162 -0
  185. maxframe/dataframe/misc/memory_usage.py +248 -0
  186. maxframe/dataframe/misc/pct_change.py +150 -0
  187. maxframe/dataframe/misc/pivot_table.py +262 -0
  188. maxframe/dataframe/misc/qcut.py +104 -0
  189. maxframe/dataframe/misc/select_dtypes.py +104 -0
  190. maxframe/dataframe/misc/shift.py +256 -0
  191. maxframe/dataframe/misc/stack.py +238 -0
  192. maxframe/dataframe/misc/string_.py +221 -0
  193. maxframe/dataframe/misc/tests/__init__.py +13 -0
  194. maxframe/dataframe/misc/tests/test_misc.py +468 -0
  195. maxframe/dataframe/misc/to_numeric.py +178 -0
  196. maxframe/dataframe/misc/transform.py +361 -0
  197. maxframe/dataframe/misc/transpose.py +136 -0
  198. maxframe/dataframe/misc/value_counts.py +182 -0
  199. maxframe/dataframe/missing/__init__.py +53 -0
  200. maxframe/dataframe/missing/checkna.py +223 -0
  201. maxframe/dataframe/missing/dropna.py +280 -0
  202. maxframe/dataframe/missing/fillna.py +275 -0
  203. maxframe/dataframe/missing/replace.py +439 -0
  204. maxframe/dataframe/missing/tests/__init__.py +13 -0
  205. maxframe/dataframe/missing/tests/test_missing.py +89 -0
  206. maxframe/dataframe/operators.py +273 -0
  207. maxframe/dataframe/plotting/__init__.py +40 -0
  208. maxframe/dataframe/plotting/core.py +78 -0
  209. maxframe/dataframe/plotting/tests/__init__.py +13 -0
  210. maxframe/dataframe/plotting/tests/test_plotting.py +136 -0
  211. maxframe/dataframe/reduction/__init__.py +107 -0
  212. maxframe/dataframe/reduction/aggregation.py +344 -0
  213. maxframe/dataframe/reduction/all.py +78 -0
  214. maxframe/dataframe/reduction/any.py +78 -0
  215. maxframe/dataframe/reduction/core.py +837 -0
  216. maxframe/dataframe/reduction/count.py +59 -0
  217. maxframe/dataframe/reduction/cummax.py +30 -0
  218. maxframe/dataframe/reduction/cummin.py +30 -0
  219. maxframe/dataframe/reduction/cumprod.py +30 -0
  220. maxframe/dataframe/reduction/cumsum.py +30 -0
  221. maxframe/dataframe/reduction/custom_reduction.py +42 -0
  222. maxframe/dataframe/reduction/kurtosis.py +104 -0
  223. maxframe/dataframe/reduction/max.py +65 -0
  224. maxframe/dataframe/reduction/mean.py +61 -0
  225. maxframe/dataframe/reduction/min.py +65 -0
  226. maxframe/dataframe/reduction/nunique.py +141 -0
  227. maxframe/dataframe/reduction/prod.py +76 -0
  228. maxframe/dataframe/reduction/reduction_size.py +36 -0
  229. maxframe/dataframe/reduction/sem.py +69 -0
  230. maxframe/dataframe/reduction/skew.py +89 -0
  231. maxframe/dataframe/reduction/std.py +53 -0
  232. maxframe/dataframe/reduction/str_concat.py +48 -0
  233. maxframe/dataframe/reduction/sum.py +77 -0
  234. maxframe/dataframe/reduction/tests/__init__.py +13 -0
  235. maxframe/dataframe/reduction/tests/test_reduction.py +486 -0
  236. maxframe/dataframe/reduction/unique.py +90 -0
  237. maxframe/dataframe/reduction/var.py +72 -0
  238. maxframe/dataframe/sort/__init__.py +34 -0
  239. maxframe/dataframe/sort/core.py +36 -0
  240. maxframe/dataframe/sort/sort_index.py +153 -0
  241. maxframe/dataframe/sort/sort_values.py +311 -0
  242. maxframe/dataframe/sort/tests/__init__.py +13 -0
  243. maxframe/dataframe/sort/tests/test_sort.py +81 -0
  244. maxframe/dataframe/statistics/__init__.py +33 -0
  245. maxframe/dataframe/statistics/corr.py +280 -0
  246. maxframe/dataframe/statistics/quantile.py +341 -0
  247. maxframe/dataframe/statistics/tests/__init__.py +13 -0
  248. maxframe/dataframe/statistics/tests/test_statistics.py +82 -0
  249. maxframe/dataframe/tests/__init__.py +13 -0
  250. maxframe/dataframe/tests/test_initializer.py +29 -0
  251. maxframe/dataframe/tseries/__init__.py +13 -0
  252. maxframe/dataframe/tseries/tests/__init__.py +13 -0
  253. maxframe/dataframe/tseries/tests/test_tseries.py +30 -0
  254. maxframe/dataframe/tseries/to_datetime.py +297 -0
  255. maxframe/dataframe/ufunc/__init__.py +27 -0
  256. maxframe/dataframe/ufunc/tensor.py +54 -0
  257. maxframe/dataframe/ufunc/ufunc.py +52 -0
  258. maxframe/dataframe/utils.py +1267 -0
  259. maxframe/dataframe/window/__init__.py +29 -0
  260. maxframe/dataframe/window/aggregation.py +96 -0
  261. maxframe/dataframe/window/core.py +69 -0
  262. maxframe/dataframe/window/ewm.py +249 -0
  263. maxframe/dataframe/window/expanding.py +147 -0
  264. maxframe/dataframe/window/rolling.py +376 -0
  265. maxframe/dataframe/window/tests/__init__.py +13 -0
  266. maxframe/dataframe/window/tests/test_ewm.py +70 -0
  267. maxframe/dataframe/window/tests/test_expanding.py +66 -0
  268. maxframe/dataframe/window/tests/test_rolling.py +57 -0
  269. maxframe/env.py +33 -0
  270. maxframe/errors.py +21 -0
  271. maxframe/extension.py +81 -0
  272. maxframe/learn/__init__.py +17 -0
  273. maxframe/learn/contrib/__init__.py +17 -0
  274. maxframe/learn/contrib/pytorch/__init__.py +16 -0
  275. maxframe/learn/contrib/pytorch/run_function.py +110 -0
  276. maxframe/learn/contrib/pytorch/run_script.py +102 -0
  277. maxframe/learn/contrib/pytorch/tests/__init__.py +13 -0
  278. maxframe/learn/contrib/pytorch/tests/test_pytorch.py +42 -0
  279. maxframe/learn/contrib/utils.py +52 -0
  280. maxframe/learn/contrib/xgboost/__init__.py +26 -0
  281. maxframe/learn/contrib/xgboost/classifier.py +86 -0
  282. maxframe/learn/contrib/xgboost/core.py +156 -0
  283. maxframe/learn/contrib/xgboost/dmatrix.py +150 -0
  284. maxframe/learn/contrib/xgboost/predict.py +138 -0
  285. maxframe/learn/contrib/xgboost/regressor.py +78 -0
  286. maxframe/learn/contrib/xgboost/tests/__init__.py +13 -0
  287. maxframe/learn/contrib/xgboost/tests/test_core.py +43 -0
  288. maxframe/learn/contrib/xgboost/train.py +121 -0
  289. maxframe/learn/utils/__init__.py +15 -0
  290. maxframe/learn/utils/core.py +29 -0
  291. maxframe/lib/__init__.py +15 -0
  292. maxframe/lib/aio/__init__.py +27 -0
  293. maxframe/lib/aio/_runners.py +162 -0
  294. maxframe/lib/aio/_threads.py +35 -0
  295. maxframe/lib/aio/base.py +82 -0
  296. maxframe/lib/aio/file.py +85 -0
  297. maxframe/lib/aio/isolation.py +100 -0
  298. maxframe/lib/aio/lru.py +242 -0
  299. maxframe/lib/aio/parallelism.py +37 -0
  300. maxframe/lib/aio/tests/__init__.py +13 -0
  301. maxframe/lib/aio/tests/test_aio_file.py +55 -0
  302. maxframe/lib/compression.py +55 -0
  303. maxframe/lib/cython/__init__.py +13 -0
  304. maxframe/lib/cython/libcpp.pxd +30 -0
  305. maxframe/lib/filesystem/__init__.py +21 -0
  306. maxframe/lib/filesystem/_glob.py +173 -0
  307. maxframe/lib/filesystem/_oss_lib/__init__.py +13 -0
  308. maxframe/lib/filesystem/_oss_lib/common.py +198 -0
  309. maxframe/lib/filesystem/_oss_lib/glob.py +147 -0
  310. maxframe/lib/filesystem/_oss_lib/handle.py +156 -0
  311. maxframe/lib/filesystem/arrow.py +236 -0
  312. maxframe/lib/filesystem/base.py +263 -0
  313. maxframe/lib/filesystem/core.py +95 -0
  314. maxframe/lib/filesystem/fsmap.py +164 -0
  315. maxframe/lib/filesystem/hdfs.py +31 -0
  316. maxframe/lib/filesystem/local.py +112 -0
  317. maxframe/lib/filesystem/oss.py +157 -0
  318. maxframe/lib/filesystem/tests/__init__.py +13 -0
  319. maxframe/lib/filesystem/tests/test_filesystem.py +223 -0
  320. maxframe/lib/filesystem/tests/test_oss.py +182 -0
  321. maxframe/lib/functools_compat.py +81 -0
  322. maxframe/lib/mmh3.cpython-39-darwin.so +0 -0
  323. maxframe/lib/mmh3_src/MurmurHash3.cpp +339 -0
  324. maxframe/lib/mmh3_src/MurmurHash3.h +43 -0
  325. maxframe/lib/mmh3_src/mmh3module.cpp +387 -0
  326. maxframe/lib/sparse/__init__.py +861 -0
  327. maxframe/lib/sparse/array.py +1604 -0
  328. maxframe/lib/sparse/core.py +92 -0
  329. maxframe/lib/sparse/matrix.py +241 -0
  330. maxframe/lib/sparse/tests/__init__.py +15 -0
  331. maxframe/lib/sparse/tests/test_sparse.py +476 -0
  332. maxframe/lib/sparse/vector.py +150 -0
  333. maxframe/lib/tblib/LICENSE +20 -0
  334. maxframe/lib/tblib/__init__.py +327 -0
  335. maxframe/lib/tblib/cpython.py +83 -0
  336. maxframe/lib/tblib/decorators.py +44 -0
  337. maxframe/lib/tblib/pickling_support.py +90 -0
  338. maxframe/lib/tests/__init__.py +13 -0
  339. maxframe/lib/tests/test_wrapped_pickle.py +51 -0
  340. maxframe/lib/version.py +620 -0
  341. maxframe/lib/wrapped_pickle.py +139 -0
  342. maxframe/mixin.py +100 -0
  343. maxframe/odpsio/__init__.py +21 -0
  344. maxframe/odpsio/arrow.py +91 -0
  345. maxframe/odpsio/schema.py +364 -0
  346. maxframe/odpsio/tableio.py +322 -0
  347. maxframe/odpsio/tests/__init__.py +13 -0
  348. maxframe/odpsio/tests/test_arrow.py +88 -0
  349. maxframe/odpsio/tests/test_schema.py +297 -0
  350. maxframe/odpsio/tests/test_tableio.py +136 -0
  351. maxframe/odpsio/tests/test_volumeio.py +90 -0
  352. maxframe/odpsio/volumeio.py +95 -0
  353. maxframe/opcodes.py +590 -0
  354. maxframe/protocol.py +415 -0
  355. maxframe/remote/__init__.py +18 -0
  356. maxframe/remote/core.py +210 -0
  357. maxframe/remote/run_script.py +121 -0
  358. maxframe/serialization/__init__.py +26 -0
  359. maxframe/serialization/arrow.py +95 -0
  360. maxframe/serialization/core.cpython-39-darwin.so +0 -0
  361. maxframe/serialization/core.pxd +44 -0
  362. maxframe/serialization/core.pyi +61 -0
  363. maxframe/serialization/core.pyx +1094 -0
  364. maxframe/serialization/exception.py +86 -0
  365. maxframe/serialization/maxframe_objects.py +39 -0
  366. maxframe/serialization/numpy.py +91 -0
  367. maxframe/serialization/pandas.py +202 -0
  368. maxframe/serialization/scipy.py +71 -0
  369. maxframe/serialization/serializables/__init__.py +55 -0
  370. maxframe/serialization/serializables/core.py +262 -0
  371. maxframe/serialization/serializables/field.py +624 -0
  372. maxframe/serialization/serializables/field_type.py +589 -0
  373. maxframe/serialization/serializables/tests/__init__.py +13 -0
  374. maxframe/serialization/serializables/tests/test_field_type.py +121 -0
  375. maxframe/serialization/serializables/tests/test_serializable.py +250 -0
  376. maxframe/serialization/tests/__init__.py +13 -0
  377. maxframe/serialization/tests/test_serial.py +412 -0
  378. maxframe/session.py +1310 -0
  379. maxframe/tensor/__init__.py +183 -0
  380. maxframe/tensor/arithmetic/__init__.py +315 -0
  381. maxframe/tensor/arithmetic/abs.py +68 -0
  382. maxframe/tensor/arithmetic/absolute.py +68 -0
  383. maxframe/tensor/arithmetic/add.py +82 -0
  384. maxframe/tensor/arithmetic/angle.py +72 -0
  385. maxframe/tensor/arithmetic/arccos.py +104 -0
  386. maxframe/tensor/arithmetic/arccosh.py +91 -0
  387. maxframe/tensor/arithmetic/arcsin.py +94 -0
  388. maxframe/tensor/arithmetic/arcsinh.py +86 -0
  389. maxframe/tensor/arithmetic/arctan.py +106 -0
  390. maxframe/tensor/arithmetic/arctan2.py +128 -0
  391. maxframe/tensor/arithmetic/arctanh.py +86 -0
  392. maxframe/tensor/arithmetic/around.py +114 -0
  393. maxframe/tensor/arithmetic/bitand.py +95 -0
  394. maxframe/tensor/arithmetic/bitor.py +102 -0
  395. maxframe/tensor/arithmetic/bitxor.py +95 -0
  396. maxframe/tensor/arithmetic/cbrt.py +66 -0
  397. maxframe/tensor/arithmetic/ceil.py +71 -0
  398. maxframe/tensor/arithmetic/clip.py +165 -0
  399. maxframe/tensor/arithmetic/conj.py +74 -0
  400. maxframe/tensor/arithmetic/copysign.py +78 -0
  401. maxframe/tensor/arithmetic/core.py +544 -0
  402. maxframe/tensor/arithmetic/cos.py +85 -0
  403. maxframe/tensor/arithmetic/cosh.py +72 -0
  404. maxframe/tensor/arithmetic/deg2rad.py +72 -0
  405. maxframe/tensor/arithmetic/degrees.py +77 -0
  406. maxframe/tensor/arithmetic/divide.py +114 -0
  407. maxframe/tensor/arithmetic/equal.py +76 -0
  408. maxframe/tensor/arithmetic/exp.py +106 -0
  409. maxframe/tensor/arithmetic/exp2.py +67 -0
  410. maxframe/tensor/arithmetic/expm1.py +79 -0
  411. maxframe/tensor/arithmetic/fabs.py +74 -0
  412. maxframe/tensor/arithmetic/fix.py +69 -0
  413. maxframe/tensor/arithmetic/float_power.py +103 -0
  414. maxframe/tensor/arithmetic/floor.py +77 -0
  415. maxframe/tensor/arithmetic/floordiv.py +94 -0
  416. maxframe/tensor/arithmetic/fmax.py +105 -0
  417. maxframe/tensor/arithmetic/fmin.py +106 -0
  418. maxframe/tensor/arithmetic/fmod.py +99 -0
  419. maxframe/tensor/arithmetic/frexp.py +92 -0
  420. maxframe/tensor/arithmetic/greater.py +77 -0
  421. maxframe/tensor/arithmetic/greater_equal.py +69 -0
  422. maxframe/tensor/arithmetic/hypot.py +77 -0
  423. maxframe/tensor/arithmetic/i0.py +89 -0
  424. maxframe/tensor/arithmetic/imag.py +67 -0
  425. maxframe/tensor/arithmetic/invert.py +110 -0
  426. maxframe/tensor/arithmetic/isclose.py +115 -0
  427. maxframe/tensor/arithmetic/iscomplex.py +64 -0
  428. maxframe/tensor/arithmetic/isfinite.py +106 -0
  429. maxframe/tensor/arithmetic/isinf.py +103 -0
  430. maxframe/tensor/arithmetic/isnan.py +82 -0
  431. maxframe/tensor/arithmetic/isreal.py +63 -0
  432. maxframe/tensor/arithmetic/ldexp.py +99 -0
  433. maxframe/tensor/arithmetic/less.py +69 -0
  434. maxframe/tensor/arithmetic/less_equal.py +69 -0
  435. maxframe/tensor/arithmetic/log.py +92 -0
  436. maxframe/tensor/arithmetic/log10.py +85 -0
  437. maxframe/tensor/arithmetic/log1p.py +95 -0
  438. maxframe/tensor/arithmetic/log2.py +85 -0
  439. maxframe/tensor/arithmetic/logaddexp.py +80 -0
  440. maxframe/tensor/arithmetic/logaddexp2.py +78 -0
  441. maxframe/tensor/arithmetic/logical_and.py +81 -0
  442. maxframe/tensor/arithmetic/logical_not.py +74 -0
  443. maxframe/tensor/arithmetic/logical_or.py +82 -0
  444. maxframe/tensor/arithmetic/logical_xor.py +88 -0
  445. maxframe/tensor/arithmetic/lshift.py +82 -0
  446. maxframe/tensor/arithmetic/maximum.py +108 -0
  447. maxframe/tensor/arithmetic/minimum.py +108 -0
  448. maxframe/tensor/arithmetic/mod.py +104 -0
  449. maxframe/tensor/arithmetic/modf.py +83 -0
  450. maxframe/tensor/arithmetic/multiply.py +81 -0
  451. maxframe/tensor/arithmetic/nan_to_num.py +99 -0
  452. maxframe/tensor/arithmetic/negative.py +65 -0
  453. maxframe/tensor/arithmetic/nextafter.py +68 -0
  454. maxframe/tensor/arithmetic/not_equal.py +72 -0
  455. maxframe/tensor/arithmetic/positive.py +47 -0
  456. maxframe/tensor/arithmetic/power.py +106 -0
  457. maxframe/tensor/arithmetic/rad2deg.py +71 -0
  458. maxframe/tensor/arithmetic/radians.py +77 -0
  459. maxframe/tensor/arithmetic/real.py +70 -0
  460. maxframe/tensor/arithmetic/reciprocal.py +76 -0
  461. maxframe/tensor/arithmetic/rint.py +68 -0
  462. maxframe/tensor/arithmetic/rshift.py +81 -0
  463. maxframe/tensor/arithmetic/setimag.py +29 -0
  464. maxframe/tensor/arithmetic/setreal.py +29 -0
  465. maxframe/tensor/arithmetic/sign.py +81 -0
  466. maxframe/tensor/arithmetic/signbit.py +65 -0
  467. maxframe/tensor/arithmetic/sin.py +98 -0
  468. maxframe/tensor/arithmetic/sinc.py +102 -0
  469. maxframe/tensor/arithmetic/sinh.py +93 -0
  470. maxframe/tensor/arithmetic/spacing.py +72 -0
  471. maxframe/tensor/arithmetic/sqrt.py +81 -0
  472. maxframe/tensor/arithmetic/square.py +69 -0
  473. maxframe/tensor/arithmetic/subtract.py +81 -0
  474. maxframe/tensor/arithmetic/tan.py +88 -0
  475. maxframe/tensor/arithmetic/tanh.py +92 -0
  476. maxframe/tensor/arithmetic/tests/__init__.py +15 -0
  477. maxframe/tensor/arithmetic/tests/test_arithmetic.py +414 -0
  478. maxframe/tensor/arithmetic/truediv.py +104 -0
  479. maxframe/tensor/arithmetic/trunc.py +72 -0
  480. maxframe/tensor/arithmetic/utils.py +65 -0
  481. maxframe/tensor/array_utils.py +186 -0
  482. maxframe/tensor/base/__init__.py +34 -0
  483. maxframe/tensor/base/astype.py +119 -0
  484. maxframe/tensor/base/atleast_1d.py +74 -0
  485. maxframe/tensor/base/broadcast_to.py +89 -0
  486. maxframe/tensor/base/ravel.py +92 -0
  487. maxframe/tensor/base/tests/__init__.py +13 -0
  488. maxframe/tensor/base/tests/test_base.py +114 -0
  489. maxframe/tensor/base/transpose.py +125 -0
  490. maxframe/tensor/base/unique.py +205 -0
  491. maxframe/tensor/base/where.py +127 -0
  492. maxframe/tensor/core.py +724 -0
  493. maxframe/tensor/datasource/__init__.py +32 -0
  494. maxframe/tensor/datasource/arange.py +156 -0
  495. maxframe/tensor/datasource/array.py +415 -0
  496. maxframe/tensor/datasource/core.py +109 -0
  497. maxframe/tensor/datasource/empty.py +169 -0
  498. maxframe/tensor/datasource/from_dataframe.py +70 -0
  499. maxframe/tensor/datasource/from_dense.py +54 -0
  500. maxframe/tensor/datasource/from_sparse.py +47 -0
  501. maxframe/tensor/datasource/full.py +186 -0
  502. maxframe/tensor/datasource/ones.py +173 -0
  503. maxframe/tensor/datasource/scalar.py +40 -0
  504. maxframe/tensor/datasource/tests/__init__.py +13 -0
  505. maxframe/tensor/datasource/tests/test_datasource.py +278 -0
  506. maxframe/tensor/datasource/zeros.py +188 -0
  507. maxframe/tensor/fetch/__init__.py +15 -0
  508. maxframe/tensor/fetch/core.py +54 -0
  509. maxframe/tensor/indexing/__init__.py +47 -0
  510. maxframe/tensor/indexing/choose.py +196 -0
  511. maxframe/tensor/indexing/compress.py +124 -0
  512. maxframe/tensor/indexing/core.py +190 -0
  513. maxframe/tensor/indexing/extract.py +71 -0
  514. maxframe/tensor/indexing/fill_diagonal.py +183 -0
  515. maxframe/tensor/indexing/flatnonzero.py +60 -0
  516. maxframe/tensor/indexing/getitem.py +175 -0
  517. maxframe/tensor/indexing/nonzero.py +120 -0
  518. maxframe/tensor/indexing/setitem.py +132 -0
  519. maxframe/tensor/indexing/slice.py +29 -0
  520. maxframe/tensor/indexing/take.py +130 -0
  521. maxframe/tensor/indexing/tests/__init__.py +15 -0
  522. maxframe/tensor/indexing/tests/test_indexing.py +234 -0
  523. maxframe/tensor/indexing/unravel_index.py +103 -0
  524. maxframe/tensor/merge/__init__.py +15 -0
  525. maxframe/tensor/merge/stack.py +132 -0
  526. maxframe/tensor/merge/tests/__init__.py +13 -0
  527. maxframe/tensor/merge/tests/test_merge.py +52 -0
  528. maxframe/tensor/operators.py +123 -0
  529. maxframe/tensor/random/__init__.py +168 -0
  530. maxframe/tensor/random/beta.py +87 -0
  531. maxframe/tensor/random/binomial.py +137 -0
  532. maxframe/tensor/random/bytes.py +39 -0
  533. maxframe/tensor/random/chisquare.py +110 -0
  534. maxframe/tensor/random/choice.py +186 -0
  535. maxframe/tensor/random/core.py +234 -0
  536. maxframe/tensor/random/dirichlet.py +123 -0
  537. maxframe/tensor/random/exponential.py +94 -0
  538. maxframe/tensor/random/f.py +135 -0
  539. maxframe/tensor/random/gamma.py +128 -0
  540. maxframe/tensor/random/geometric.py +93 -0
  541. maxframe/tensor/random/gumbel.py +167 -0
  542. maxframe/tensor/random/hypergeometric.py +148 -0
  543. maxframe/tensor/random/laplace.py +133 -0
  544. maxframe/tensor/random/logistic.py +129 -0
  545. maxframe/tensor/random/lognormal.py +159 -0
  546. maxframe/tensor/random/logseries.py +122 -0
  547. maxframe/tensor/random/multinomial.py +133 -0
  548. maxframe/tensor/random/multivariate_normal.py +192 -0
  549. maxframe/tensor/random/negative_binomial.py +125 -0
  550. maxframe/tensor/random/noncentral_chisquare.py +132 -0
  551. maxframe/tensor/random/noncentral_f.py +126 -0
  552. maxframe/tensor/random/normal.py +143 -0
  553. maxframe/tensor/random/pareto.py +140 -0
  554. maxframe/tensor/random/permutation.py +104 -0
  555. maxframe/tensor/random/poisson.py +111 -0
  556. maxframe/tensor/random/power.py +142 -0
  557. maxframe/tensor/random/rand.py +82 -0
  558. maxframe/tensor/random/randint.py +121 -0
  559. maxframe/tensor/random/randn.py +96 -0
  560. maxframe/tensor/random/random_integers.py +123 -0
  561. maxframe/tensor/random/random_sample.py +86 -0
  562. maxframe/tensor/random/rayleigh.py +110 -0
  563. maxframe/tensor/random/shuffle.py +61 -0
  564. maxframe/tensor/random/standard_cauchy.py +105 -0
  565. maxframe/tensor/random/standard_exponential.py +72 -0
  566. maxframe/tensor/random/standard_gamma.py +120 -0
  567. maxframe/tensor/random/standard_normal.py +74 -0
  568. maxframe/tensor/random/standard_t.py +135 -0
  569. maxframe/tensor/random/tests/__init__.py +15 -0
  570. maxframe/tensor/random/tests/test_random.py +167 -0
  571. maxframe/tensor/random/triangular.py +119 -0
  572. maxframe/tensor/random/uniform.py +131 -0
  573. maxframe/tensor/random/vonmises.py +131 -0
  574. maxframe/tensor/random/wald.py +114 -0
  575. maxframe/tensor/random/weibull.py +140 -0
  576. maxframe/tensor/random/zipf.py +122 -0
  577. maxframe/tensor/rechunk/__init__.py +26 -0
  578. maxframe/tensor/rechunk/rechunk.py +43 -0
  579. maxframe/tensor/reduction/__init__.py +66 -0
  580. maxframe/tensor/reduction/all.py +103 -0
  581. maxframe/tensor/reduction/allclose.py +88 -0
  582. maxframe/tensor/reduction/any.py +105 -0
  583. maxframe/tensor/reduction/argmax.py +103 -0
  584. maxframe/tensor/reduction/argmin.py +103 -0
  585. maxframe/tensor/reduction/array_equal.py +64 -0
  586. maxframe/tensor/reduction/core.py +168 -0
  587. maxframe/tensor/reduction/count_nonzero.py +81 -0
  588. maxframe/tensor/reduction/cumprod.py +97 -0
  589. maxframe/tensor/reduction/cumsum.py +101 -0
  590. maxframe/tensor/reduction/max.py +120 -0
  591. maxframe/tensor/reduction/mean.py +123 -0
  592. maxframe/tensor/reduction/min.py +120 -0
  593. maxframe/tensor/reduction/nanargmax.py +82 -0
  594. maxframe/tensor/reduction/nanargmin.py +76 -0
  595. maxframe/tensor/reduction/nancumprod.py +91 -0
  596. maxframe/tensor/reduction/nancumsum.py +94 -0
  597. maxframe/tensor/reduction/nanmax.py +111 -0
  598. maxframe/tensor/reduction/nanmean.py +106 -0
  599. maxframe/tensor/reduction/nanmin.py +111 -0
  600. maxframe/tensor/reduction/nanprod.py +94 -0
  601. maxframe/tensor/reduction/nanstd.py +126 -0
  602. maxframe/tensor/reduction/nansum.py +115 -0
  603. maxframe/tensor/reduction/nanvar.py +149 -0
  604. maxframe/tensor/reduction/prod.py +130 -0
  605. maxframe/tensor/reduction/std.py +134 -0
  606. maxframe/tensor/reduction/sum.py +125 -0
  607. maxframe/tensor/reduction/tests/__init__.py +13 -0
  608. maxframe/tensor/reduction/tests/test_reduction.py +181 -0
  609. maxframe/tensor/reduction/var.py +176 -0
  610. maxframe/tensor/reshape/__init__.py +17 -0
  611. maxframe/tensor/reshape/reshape.py +188 -0
  612. maxframe/tensor/reshape/tests/__init__.py +15 -0
  613. maxframe/tensor/reshape/tests/test_reshape.py +37 -0
  614. maxframe/tensor/statistics/__init__.py +13 -0
  615. maxframe/tensor/statistics/percentile.py +175 -0
  616. maxframe/tensor/statistics/quantile.py +288 -0
  617. maxframe/tensor/ufunc/__init__.py +26 -0
  618. maxframe/tensor/ufunc/ufunc.py +200 -0
  619. maxframe/tensor/utils.py +718 -0
  620. maxframe/tests/__init__.py +13 -0
  621. maxframe/tests/test_codegen.py +69 -0
  622. maxframe/tests/test_protocol.py +144 -0
  623. maxframe/tests/test_utils.py +376 -0
  624. maxframe/tests/utils.py +164 -0
  625. maxframe/typing_.py +37 -0
  626. maxframe/udf.py +134 -0
  627. maxframe/utils.py +1114 -0
  628. maxframe-0.1.0b5.dist-info/METADATA +104 -0
  629. maxframe-0.1.0b5.dist-info/RECORD +647 -0
  630. maxframe-0.1.0b5.dist-info/WHEEL +5 -0
  631. maxframe-0.1.0b5.dist-info/top_level.txt +3 -0
  632. maxframe_client/__init__.py +17 -0
  633. maxframe_client/clients/__init__.py +13 -0
  634. maxframe_client/clients/framedriver.py +118 -0
  635. maxframe_client/clients/spe.py +104 -0
  636. maxframe_client/conftest.py +15 -0
  637. maxframe_client/fetcher.py +264 -0
  638. maxframe_client/session/__init__.py +22 -0
  639. maxframe_client/session/consts.py +36 -0
  640. maxframe_client/session/graph.py +119 -0
  641. maxframe_client/session/odps.py +482 -0
  642. maxframe_client/session/task.py +280 -0
  643. maxframe_client/session/tests/__init__.py +13 -0
  644. maxframe_client/session/tests/test_task.py +85 -0
  645. maxframe_client/tests/__init__.py +13 -0
  646. maxframe_client/tests/test_fetcher.py +89 -0
  647. maxframe_client/tests/test_session.py +255 -0
@@ -0,0 +1,123 @@
1
+ # Copyright 1999-2024 Alibaba Group Holding Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from ..core import OutputType
16
+ from ..core.operator import (
17
+ Fuse,
18
+ HasInput,
19
+ MapReduceOperator,
20
+ Operator,
21
+ ShuffleProxy,
22
+ TileableOperatorMixin,
23
+ )
24
+ from ..serialization.serializables import DataTypeField
25
+ from ..utils import calc_nsplits
26
+
27
+
28
+ class TensorOperatorMixin(TileableOperatorMixin):
29
+ __slots__ = ()
30
+ _op_module_ = "tensor"
31
+ _output_type_ = OutputType.tensor
32
+
33
+ def new_tensors(
34
+ self,
35
+ inputs,
36
+ shape=None,
37
+ dtype=None,
38
+ order=None,
39
+ chunks=None,
40
+ nsplits=None,
41
+ output_limit=None,
42
+ kws=None,
43
+ **kw
44
+ ):
45
+ return self.new_tileables(
46
+ inputs,
47
+ shape=shape,
48
+ chunks=chunks,
49
+ nsplits=nsplits,
50
+ output_limit=output_limit,
51
+ kws=kws,
52
+ dtype=dtype,
53
+ order=order,
54
+ **kw
55
+ )
56
+
57
+ def new_tensor(self, inputs, shape, dtype=None, order=None, **kw):
58
+ if getattr(self, "output_limit") != 1:
59
+ raise TypeError("cannot new tensor with more than 1 outputs")
60
+ return self.new_tensors(inputs, shape=shape, dtype=dtype, order=order, **kw)[0]
61
+
62
+ @classmethod
63
+ def concat_tileable_chunks(cls, tileable):
64
+ from .merge.concatenate import TensorConcatenate
65
+
66
+ tensor = tileable
67
+ assert not tensor.is_coarse()
68
+
69
+ op = TensorConcatenate(dtype=tensor.dtype)
70
+ chunk = TensorConcatenate(dtype=tensor.dtype).new_chunk(
71
+ tensor.chunks, shape=tensor.shape, index=(0,) * tileable.ndim
72
+ )
73
+ return op.new_tensor(
74
+ [tensor],
75
+ tensor.shape,
76
+ chunks=[chunk],
77
+ nsplits=tuple((s,) for s in tensor.shape),
78
+ )
79
+
80
+ @classmethod
81
+ def create_tileable_from_chunks(cls, chunks, inputs=None, **kw):
82
+ chunk_idx_to_shape = {c.index: c.shape for c in chunks}
83
+ nsplits = calc_nsplits(chunk_idx_to_shape)
84
+ shape = tuple(sum(ns) for ns in nsplits)
85
+ op = chunks[0].op.copy().reset_key()
86
+ return op.new_tensor(
87
+ inputs,
88
+ shape=shape,
89
+ chunks=chunks,
90
+ nsplits=nsplits,
91
+ dtype=chunks[0].dtype,
92
+ **kw
93
+ )
94
+
95
+
96
+ class TensorOperator(Operator):
97
+ _output_type_ = OutputType.tensor
98
+
99
+ dtype = DataTypeField("dtype", default=None)
100
+
101
+
102
+ class TensorHasInput(HasInput):
103
+ _output_type_ = OutputType.tensor
104
+
105
+ dtype = DataTypeField("dtype", default=None)
106
+
107
+
108
+ class TensorShuffleProxy(ShuffleProxy, TensorOperatorMixin):
109
+ _output_type_ = OutputType.tensor
110
+
111
+ dtype = DataTypeField("dtype", default=None)
112
+
113
+
114
+ class TensorMapReduceOperator(MapReduceOperator):
115
+ _output_type_ = OutputType.tensor
116
+
117
+ dtype = DataTypeField("dtype", default=None)
118
+
119
+
120
+ class TensorFuse(Fuse):
121
+ _output_type_ = OutputType.tensor
122
+
123
+ dtype = DataTypeField("dtype", default=None)
@@ -0,0 +1,168 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # Copyright 1999-2024 Alibaba Group Holding Ltd.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ from .beta import TensorRandBeta, beta
18
+ from .binomial import TensorBinomial, binomial
19
+ from .bytes import bytes
20
+ from .chisquare import TensorChisquareDist, chisquare
21
+ from .choice import TensorChoice, choice
22
+ from .core import RandomState, RandomStateField, _random_state
23
+ from .dirichlet import TensorDirichlet, dirichlet
24
+ from .exponential import TensorExponential, exponential
25
+ from .f import TensorF, f
26
+ from .gamma import TensorRandGamma, gamma
27
+ from .geometric import TensorGeometric, geometric
28
+ from .gumbel import TensorGumbel, gumbel
29
+ from .hypergeometric import TensorHypergeometric, hypergeometric
30
+ from .laplace import TensorLaplace, laplace
31
+ from .logistic import TensorLogistic, logistic
32
+ from .lognormal import TensorLognormal, lognormal
33
+ from .logseries import TensorLogseries, logseries
34
+ from .multinomial import TensorMultinomial, multinomial
35
+ from .multivariate_normal import TensorMultivariateNormal, multivariate_normal
36
+ from .negative_binomial import TensorNegativeBinomial, negative_binomial
37
+ from .noncentral_chisquare import TensorNoncentralChisquare, noncentral_chisquare
38
+ from .noncentral_f import TensorNoncentralF, noncentral_f
39
+ from .normal import TensorNormal, normal
40
+ from .pareto import TensorPareto, pareto
41
+ from .permutation import TensorPermutation, permutation
42
+ from .poisson import TensorPoisson, poisson
43
+ from .power import TensorRandomPower, power
44
+ from .rand import TensorRand, rand
45
+ from .randint import TensorRandint, randint
46
+ from .randn import TensorRandn, randn
47
+ from .random_integers import TensorRandomIntegers, random_integers
48
+ from .random_sample import TensorRandomSample, random_sample
49
+ from .rayleigh import TensorRayleigh, rayleigh
50
+ from .shuffle import shuffle
51
+ from .standard_cauchy import TensorStandardCauchy, standard_cauchy
52
+ from .standard_exponential import TensorStandardExponential, standard_exponential
53
+ from .standard_gamma import TensorStandardGamma, standard_gamma
54
+ from .standard_normal import TensorStandardNormal, standard_normal
55
+ from .standard_t import TensorStandardT, standard_t
56
+ from .triangular import TensorTriangular, triangular
57
+ from .uniform import TensorUniform, uniform
58
+ from .vonmises import TensorVonmises, vonmises
59
+ from .wald import TensorWald, wald
60
+ from .weibull import TensorWeibull, weibull
61
+ from .zipf import TensorZipf, zipf
62
+
63
+
64
+ def _install():
65
+ setattr(RandomState, "rand", rand)
66
+ setattr(RandomState, "randn", randn)
67
+ setattr(RandomState, "randint", randint)
68
+ setattr(RandomState, "random_integers", random_integers)
69
+ setattr(RandomState, "random_sample", random_sample)
70
+ setattr(RandomState, "ranf", random_sample)
71
+ setattr(RandomState, "random", random_sample)
72
+ setattr(RandomState, "sample", random_sample)
73
+ setattr(RandomState, "choice", choice)
74
+ setattr(RandomState, "bytes", bytes)
75
+ setattr(RandomState, "beta", beta)
76
+ setattr(RandomState, "binomial", binomial)
77
+ setattr(RandomState, "chisquare", chisquare)
78
+ setattr(RandomState, "dirichlet", dirichlet)
79
+ setattr(RandomState, "exponential", exponential)
80
+ setattr(RandomState, "f", f)
81
+ setattr(RandomState, "gamma", gamma)
82
+ setattr(RandomState, "geometric", geometric)
83
+ setattr(RandomState, "gumbel", gumbel)
84
+ setattr(RandomState, "hypergeometric", hypergeometric)
85
+ setattr(RandomState, "laplace", laplace)
86
+ setattr(RandomState, "logistic", logistic)
87
+ setattr(RandomState, "lognormal", lognormal)
88
+ setattr(RandomState, "logseries", logseries)
89
+ setattr(RandomState, "multinomial", multinomial)
90
+ setattr(RandomState, "multivariate_normal", multivariate_normal)
91
+ setattr(RandomState, "negative_binomial", negative_binomial)
92
+ setattr(RandomState, "noncentral_chisquare", noncentral_chisquare)
93
+ setattr(RandomState, "noncentral_f", noncentral_f)
94
+ setattr(RandomState, "normal", normal)
95
+ setattr(RandomState, "pareto", pareto)
96
+ setattr(RandomState, "poisson", poisson)
97
+ setattr(RandomState, "power", power)
98
+ setattr(RandomState, "rayleigh", rayleigh)
99
+ setattr(RandomState, "standard_cauchy", standard_cauchy)
100
+ setattr(RandomState, "standard_exponential", standard_exponential)
101
+ setattr(RandomState, "standard_gamma", standard_gamma)
102
+ setattr(RandomState, "standard_normal", standard_normal)
103
+ setattr(RandomState, "standard_t", standard_t)
104
+ setattr(RandomState, "triangular", triangular)
105
+ setattr(RandomState, "uniform", uniform)
106
+ setattr(RandomState, "vonmises", vonmises)
107
+ setattr(RandomState, "wald", wald)
108
+ setattr(RandomState, "weibull", weibull)
109
+ setattr(RandomState, "zipf", zipf)
110
+ setattr(RandomState, "permutation", permutation)
111
+ setattr(RandomState, "shuffle", shuffle)
112
+
113
+
114
+ _install()
115
+ del _install
116
+
117
+
118
+ seed = _random_state.seed
119
+
120
+ rand = _random_state.rand
121
+ randn = _random_state.randn
122
+ randint = _random_state.randint
123
+ random_integers = _random_state.random_integers
124
+ random_sample = _random_state.random_sample
125
+ random = _random_state.random
126
+ ranf = _random_state.ranf
127
+ sample = _random_state.sample
128
+ choice = _random_state.choice
129
+ bytes = _random_state.bytes
130
+
131
+ permutation = _random_state.permutation
132
+ shuffle = _random_state.shuffle
133
+
134
+ beta = _random_state.beta
135
+ binomial = _random_state.binomial
136
+ chisquare = _random_state.chisquare
137
+ dirichlet = _random_state.dirichlet
138
+ exponential = _random_state.exponential
139
+ f = _random_state.f
140
+ gamma = _random_state.gamma
141
+ geometric = _random_state.geometric
142
+ gumbel = _random_state.gumbel
143
+ hypergeometric = _random_state.hypergeometric
144
+ laplace = _random_state.laplace
145
+ logistic = _random_state.logistic
146
+ lognormal = _random_state.lognormal
147
+ logseries = _random_state.logseries
148
+ multinomial = _random_state.multinomial
149
+ multivariate_normal = _random_state.multivariate_normal
150
+ negative_binomial = _random_state.negative_binomial
151
+ noncentral_chisquare = _random_state.noncentral_chisquare
152
+ noncentral_f = _random_state.noncentral_f
153
+ normal = _random_state.normal
154
+ pareto = _random_state.pareto
155
+ poisson = _random_state.poisson
156
+ power = _random_state.power
157
+ rayleigh = _random_state.rayleigh
158
+ standard_cauchy = _random_state.standard_cauchy
159
+ standard_exponential = _random_state.standard_exponential
160
+ standard_gamma = _random_state.standard_gamma
161
+ standard_normal = _random_state.standard_normal
162
+ standard_t = _random_state.standard_t
163
+ triangular = _random_state.triangular
164
+ uniform = _random_state.uniform
165
+ vonmises = _random_state.vonmises
166
+ wald = _random_state.wald
167
+ weibull = _random_state.weibull
168
+ zipf = _random_state.zipf
@@ -0,0 +1,87 @@
1
+ # Copyright 1999-2024 Alibaba Group Holding Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ import numpy as np
17
+
18
+ from ... import opcodes
19
+ from ...serialization.serializables import AnyField
20
+ from ..utils import gen_random_seeds
21
+ from .core import TensorDistribution, TensorRandomOperatorMixin, handle_array
22
+
23
+
24
+ class TensorRandBeta(TensorDistribution, TensorRandomOperatorMixin):
25
+ _input_fields_ = ["a", "b"]
26
+ _op_type_ = opcodes.RAND_BETA
27
+
28
+ _fields_ = "a", "b", "size"
29
+ a = AnyField("a")
30
+ b = AnyField("b")
31
+ _func_name = "beta"
32
+
33
+ def __call__(self, a, b, chunk_size=None):
34
+ return self.new_tensor([a, b], None, raw_chunk_size=chunk_size)
35
+
36
+
37
+ def beta(random_state, a, b, size=None, chunk_size=None, gpu=None, dtype=None):
38
+ r"""
39
+ Draw samples from a Beta distribution.
40
+
41
+ The Beta distribution is a special case of the Dirichlet distribution,
42
+ and is related to the Gamma distribution. It has the probability
43
+ distribution function
44
+
45
+ .. math:: f(x; a,b) = \frac{1}{B(\alpha, \beta)} x^{\alpha - 1}
46
+ (1 - x)^{\beta - 1},
47
+
48
+ where the normalisation, B, is the beta function,
49
+
50
+ .. math:: B(\alpha, \beta) = \int_0^1 t^{\alpha - 1}
51
+ (1 - t)^{\beta - 1} dt.
52
+
53
+ It is often seen in Bayesian inference and order statistics.
54
+
55
+ Parameters
56
+ ----------
57
+ a : float or array_like of floats
58
+ Alpha, non-negative.
59
+ b : float or array_like of floats
60
+ Beta, non-negative.
61
+ size : int or tuple of ints, optional
62
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
63
+ ``m * n * k`` samples are drawn. If size is ``None`` (default),
64
+ a single value is returned if ``a`` and ``b`` are both scalars.
65
+ Otherwise, ``mt.broadcast(a, b).size`` samples are drawn.
66
+ chunk_size : int or tuple of int or tuple of ints, optional
67
+ Desired chunk size on each dimension
68
+ gpu : bool, optional
69
+ Allocate the tensor on GPU if True, False as default
70
+ dtype : data-type, optional
71
+ Data-type of the returned tensor.
72
+
73
+ Returns
74
+ -------
75
+ out : Tensor or scalar
76
+ Drawn samples from the parameterized beta distribution.
77
+ """
78
+ if dtype is None:
79
+ dtype = (
80
+ np.random.RandomState()
81
+ .beta(handle_array(a), handle_array(b), size=(0,))
82
+ .dtype
83
+ )
84
+ size = random_state._handle_size(size)
85
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
86
+ op = TensorRandBeta(seed=seed, size=size, gpu=gpu, dtype=dtype)
87
+ return op(a, b, chunk_size=chunk_size)
@@ -0,0 +1,137 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # Copyright 1999-2024 Alibaba Group Holding Ltd.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ import numpy as np
18
+
19
+ from ... import opcodes
20
+ from ...serialization.serializables import AnyField
21
+ from ..utils import gen_random_seeds
22
+ from .core import TensorDistribution, TensorRandomOperatorMixin, handle_array
23
+
24
+
25
+ class TensorBinomial(TensorDistribution, TensorRandomOperatorMixin):
26
+ _input_fields_ = ["n", "p"]
27
+ _op_type_ = opcodes.RAND_BINOMIAL
28
+
29
+ _fields_ = "n", "p", "size"
30
+ n = AnyField("n")
31
+ p = AnyField("p")
32
+ _func_name = "binomial"
33
+
34
+ def __call__(self, n, p, chunk_size=None):
35
+ return self.new_tensor([n, p], None, raw_chunk_size=chunk_size)
36
+
37
+
38
+ def binomial(random_state, n, p, size=None, chunk_size=None, gpu=None, dtype=None):
39
+ r"""
40
+ Draw samples from a binomial distribution.
41
+
42
+ Samples are drawn from a binomial distribution with specified
43
+ parameters, n trials and p probability of success where
44
+ n an integer >= 0 and p is in the interval [0,1]. (n may be
45
+ input as a float, but it is truncated to an integer in use)
46
+
47
+ Parameters
48
+ ----------
49
+ n : int or array_like of ints
50
+ Parameter of the distribution, >= 0. Floats are also accepted,
51
+ but they will be truncated to integers.
52
+ p : float or array_like of floats
53
+ Parameter of the distribution, >= 0 and <=1.
54
+ size : int or tuple of ints, optional
55
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
56
+ ``m * n * k`` samples are drawn. If size is ``None`` (default),
57
+ a single value is returned if ``n`` and ``p`` are both scalars.
58
+ Otherwise, ``mt.broadcast(n, p).size`` samples are drawn.
59
+ chunk_size : int or tuple of int or tuple of ints, optional
60
+ Desired chunk size on each dimension
61
+ gpu : bool, optional
62
+ Allocate the tensor on GPU if True, False as default
63
+ dtype : data-type, optional
64
+ Data-type of the returned tensor.
65
+
66
+ Returns
67
+ -------
68
+ out : Tensor or scalar
69
+ Drawn samples from the parameterized binomial distribution, where
70
+ each sample is equal to the number of successes over the n trials.
71
+
72
+ See Also
73
+ --------
74
+ scipy.stats.binom : probability density function, distribution or
75
+ cumulative density function, etc.
76
+
77
+ Notes
78
+ -----
79
+ The probability density for the binomial distribution is
80
+
81
+ .. math:: P(N) = \binom{n}{N}p^N(1-p)^{n-N},
82
+
83
+ where :math:`n` is the number of trials, :math:`p` is the probability
84
+ of success, and :math:`N` is the number of successes.
85
+
86
+ When estimating the standard error of a proportion in a population by
87
+ using a random sample, the normal distribution works well unless the
88
+ product p*n <=5, where p = population proportion estimate, and n =
89
+ number of samples, in which case the binomial distribution is used
90
+ instead. For example, a sample of 15 people shows 4 who are left
91
+ handed, and 11 who are right handed. Then p = 4/15 = 27%. 0.27*15 = 4,
92
+ so the binomial distribution should be used in this case.
93
+
94
+ References
95
+ ----------
96
+ .. [1] Dalgaard, Peter, "Introductory Statistics with R",
97
+ Springer-Verlag, 2002.
98
+ .. [2] Glantz, Stanton A. "Primer of Biostatistics.", McGraw-Hill,
99
+ Fifth Edition, 2002.
100
+ .. [3] Lentner, Marvin, "Elementary Applied Statistics", Bogden
101
+ and Quigley, 1972.
102
+ .. [4] Weisstein, Eric W. "Binomial Distribution." From MathWorld--A
103
+ Wolfram Web Resource.
104
+ http://mathworld.wolfram.com/BinomialDistribution.html
105
+ .. [5] Wikipedia, "Binomial distribution",
106
+ http://en.wikipedia.org/wiki/Binomial_distribution
107
+
108
+ Examples
109
+ --------
110
+ Draw samples from the distribution:
111
+
112
+ >>> import maxframe.tensor as mt
113
+
114
+ >>> n, p = 10, .5 # number of trials, probability of each trial
115
+ >>> s = mt.random.binomial(n, p, 1000).execute()
116
+ # result of flipping a coin 10 times, tested 1000 times.
117
+
118
+ A real world example. A company drills 9 wild-cat oil exploration
119
+ wells, each with an estimated probability of success of 0.1. All nine
120
+ wells fail. What is the probability of that happening?
121
+
122
+ Let's do 20,000 trials of the model, and count the number that
123
+ generate zero positive results.
124
+
125
+ >>> (mt.sum(mt.random.binomial(9, 0.1, 20000) == 0)/20000.).execute()
126
+ # answer = 0.38885, or 38%.
127
+ """
128
+ if dtype is None:
129
+ dtype = (
130
+ np.random.RandomState()
131
+ .binomial(handle_array(n), handle_array(p), size=(0,))
132
+ .dtype
133
+ )
134
+ size = random_state._handle_size(size)
135
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
136
+ op = TensorBinomial(seed=seed, size=size, gpu=gpu, dtype=dtype)
137
+ return op(n, p, chunk_size=chunk_size)
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # Copyright 1999-2024 Alibaba Group Holding Ltd.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+
18
+ def bytes(random_state, length):
19
+ """
20
+ Return random bytes.
21
+
22
+ Parameters
23
+ ----------
24
+ length : int
25
+ Number of random bytes.
26
+
27
+ Returns
28
+ -------
29
+ out : str
30
+ String of length `length`.
31
+
32
+ Examples
33
+ --------
34
+ >>> import maxframe.tensor as mt
35
+
36
+ >>> mt.random.bytes(10)
37
+ ' eh\x85\x022SZ\xbf\xa4' #random
38
+ """
39
+ return random_state._random_state.bytes(length)
@@ -0,0 +1,110 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # Copyright 1999-2024 Alibaba Group Holding Ltd.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ import numpy as np
18
+
19
+ from ... import opcodes
20
+ from ...serialization.serializables import AnyField
21
+ from ..utils import gen_random_seeds
22
+ from .core import TensorDistribution, TensorRandomOperatorMixin, handle_array
23
+
24
+
25
+ class TensorChisquareDist(TensorDistribution, TensorRandomOperatorMixin):
26
+ _input_fields_ = ["df"]
27
+ _op_type_ = opcodes.RAND_CHISQUARE
28
+
29
+ _fields_ = "df", "size"
30
+ df = AnyField("df")
31
+ _func_name = "chisquare"
32
+
33
+ def __call__(self, df, chunk_size=None):
34
+ return self.new_tensor([df], self.size, raw_chunk_size=chunk_size)
35
+
36
+
37
+ def chisquare(random_state, df, size=None, chunk_size=None, gpu=None, dtype=None):
38
+ r"""
39
+ Draw samples from a chi-square distribution.
40
+
41
+ When `df` independent random variables, each with standard normal
42
+ distributions (mean 0, variance 1), are squared and summed, the
43
+ resulting distribution is chi-square (see Notes). This distribution
44
+ is often used in hypothesis testing.
45
+
46
+ Parameters
47
+ ----------
48
+ df : float or array_like of floats
49
+ Number of degrees of freedom, should be > 0.
50
+ size : int or tuple of ints, optional
51
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
52
+ ``m * n * k`` samples are drawn. If size is ``None`` (default),
53
+ a single value is returned if ``df`` is a scalar. Otherwise,
54
+ ``mt.array(df).size`` samples are drawn.
55
+ chunk_size : int or tuple of int or tuple of ints, optional
56
+ Desired chunk size on each dimension
57
+ gpu : bool, optional
58
+ Allocate the tensor on GPU if True, False as default
59
+ dtype : data-type, optional
60
+ Data-type of the returned tensor.
61
+
62
+ Returns
63
+ -------
64
+ out : Tensor or scalar
65
+ Drawn samples from the parameterized chi-square distribution.
66
+
67
+ Raises
68
+ ------
69
+ ValueError
70
+ When `df` <= 0 or when an inappropriate `size` (e.g. ``size=-1``)
71
+ is given.
72
+
73
+ Notes
74
+ -----
75
+ The variable obtained by summing the squares of `df` independent,
76
+ standard normally distributed random variables:
77
+
78
+ .. math:: Q = \sum_{i=0}^{\mathtt{df}} X^2_i
79
+
80
+ is chi-square distributed, denoted
81
+
82
+ .. math:: Q \sim \chi^2_k.
83
+
84
+ The probability density function of the chi-squared distribution is
85
+
86
+ .. math:: p(x) = \frac{(1/2)^{k/2}}{\Gamma(k/2)}
87
+ x^{k/2 - 1} e^{-x/2},
88
+
89
+ where :math:`\Gamma` is the gamma function,
90
+
91
+ .. math:: \Gamma(x) = \int_0^{-\infty} t^{x - 1} e^{-t} dt.
92
+
93
+ References
94
+ ----------
95
+ .. [1] NIST "Engineering Statistics Handbook"
96
+ http://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm
97
+
98
+ Examples
99
+ --------
100
+ >>> import maxframe.tensor as mt
101
+
102
+ >>> mt.random.chisquare(2,4).execute()
103
+ array([ 1.89920014, 9.00867716, 3.13710533, 5.62318272])
104
+ """
105
+ if dtype is None:
106
+ dtype = np.random.RandomState().chisquare(handle_array(df), size=(0,)).dtype
107
+ size = random_state._handle_size(size)
108
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
109
+ op = TensorChisquareDist(seed=seed, size=size, gpu=gpu, dtype=dtype)
110
+ return op(df, chunk_size=chunk_size)