maxframe 0.1.0b5__cp310-cp310-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-310-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-310-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-310-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-310-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,82 @@
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 ..utils import gen_random_seeds
21
+ from .core import TensorRandomOperatorMixin, TensorSimpleRandomData
22
+
23
+
24
+ class TensorRand(TensorSimpleRandomData, TensorRandomOperatorMixin):
25
+ _op_type_ = opcodes.RAND_RAND
26
+ _func_name = "rand"
27
+
28
+ def __call__(self, chunk_size=None):
29
+ return self.new_tensor(None, None, raw_chunk_size=chunk_size)
30
+
31
+
32
+ def rand(random_state, *dn, **kw):
33
+ """
34
+ Random values in a given shape.
35
+
36
+ Create a tensor of the given shape and populate it with
37
+ random samples from a uniform distributionc
38
+ over ``[0, 1)``.
39
+
40
+ Parameters
41
+ ----------
42
+ d0, d1, ..., dn : int, optional
43
+ The dimensions of the returned tensor, should all be positive.
44
+ If no argument is given a single Python float is returned.
45
+
46
+ Returns
47
+ -------
48
+ out : Tensor, shape ``(d0, d1, ..., dn)``
49
+ Random values.
50
+
51
+ See Also
52
+ --------
53
+ random
54
+
55
+ Notes
56
+ -----
57
+ This is a convenience function. If you want an interface that
58
+ takes a shape-tuple as the first argument, refer to
59
+ mt.random.random_sample .
60
+
61
+ Examples
62
+ --------
63
+ >>> import maxframe.tensor as mt
64
+
65
+ >>> mt.random.rand(3, 2).execute()
66
+ array([[ 0.14022471, 0.96360618], #random
67
+ [ 0.37601032, 0.25528411], #random
68
+ [ 0.49313049, 0.94909878]]) #random
69
+ """
70
+ if len(dn) == 1 and isinstance(dn[0], (tuple, list)):
71
+ raise TypeError("'tuple' object cannot be interpreted as an integer")
72
+ if "dtype" not in kw:
73
+ kw["dtype"] = np.dtype("f8")
74
+ chunk_size = kw.pop("chunk_size", None)
75
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
76
+ op = TensorRand(seed=seed, size=dn, **kw)
77
+
78
+ for key in op.extra_params:
79
+ if not key.startswith("_"):
80
+ raise ValueError(f"rand got unexpected key arguments {key}")
81
+
82
+ return op(chunk_size=chunk_size)
@@ -0,0 +1,121 @@
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 ... import opcodes
18
+ from ...serialization.serializables import Float64Field, Int64Field
19
+ from ..utils import gen_random_seeds
20
+ from .core import TensorRandomOperatorMixin, TensorSimpleRandomData
21
+
22
+
23
+ class TensorRandint(TensorSimpleRandomData, TensorRandomOperatorMixin):
24
+ _op_type_ = opcodes.RAND_RANDINT
25
+
26
+ _fields_ = "low", "high", "density", "size"
27
+ low = Int64Field("low")
28
+ high = Int64Field("high")
29
+ density = Float64Field("density")
30
+ _func_name = "randint"
31
+
32
+ def __call__(self, chunk_size=None):
33
+ return self.new_tensor(None, None, raw_chunk_size=chunk_size)
34
+
35
+
36
+ def randint(
37
+ random_state,
38
+ low,
39
+ high=None,
40
+ size=None,
41
+ dtype="l",
42
+ density=None,
43
+ chunk_size=None,
44
+ gpu=None,
45
+ ):
46
+ """
47
+ Return random integers from `low` (inclusive) to `high` (exclusive).
48
+
49
+ Return random integers from the "discrete uniform" distribution of
50
+ the specified dtype in the "half-open" interval [`low`, `high`). If
51
+ `high` is None (the default), then results are from [0, `low`).
52
+
53
+ Parameters
54
+ ----------
55
+ low : int
56
+ Lowest (signed) integer to be drawn from the distribution (unless
57
+ ``high=None``, in which case this parameter is one above the
58
+ *highest* such integer).
59
+ high : int, optional
60
+ If provided, one above the largest (signed) integer to be drawn
61
+ from the distribution (see above for behavior if ``high=None``).
62
+ size : int or tuple of ints, optional
63
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
64
+ ``m * n * k`` samples are drawn. Default is None, in which case a
65
+ single value is returned.
66
+ dtype : dtype, optional
67
+ Desired dtype of the result. All dtypes are determined by their
68
+ name, i.e., 'int64', 'int', etc, so byteorder is not available
69
+ and a specific precision may have different C types depending
70
+ on the platform. The default value is 'np.int'.
71
+ density: float, optional
72
+ if density specified, a sparse tensor will be created
73
+ chunk_size : int or tuple of int or tuple of ints, optional
74
+ Desired chunk size on each dimension
75
+ gpu : bool, optional
76
+ Allocate the tensor on GPU if True, False as default
77
+ dtype : data-type, optional
78
+ Data-type of the returned tensor.
79
+
80
+ Returns
81
+ -------
82
+ out : int or Tensor of ints
83
+ `size`-shaped tensor of random integers from the appropriate
84
+ distribution, or a single such random int if `size` not provided.
85
+
86
+ See Also
87
+ --------
88
+ random.random_integers : similar to `randint`, only for the closed
89
+ interval [`low`, `high`], and 1 is the lowest value if `high` is
90
+ omitted. In particular, this other one is the one to use to generate
91
+ uniformly distributed discrete non-integers.
92
+
93
+ Examples
94
+ --------
95
+ >>> import maxframe.tensor as mt
96
+
97
+ >>> mt.random.randint(2, size=10).execute()
98
+ array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0])
99
+ >>> mt.random.randint(1, size=10).execute()
100
+ array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
101
+
102
+ Generate a 2 x 4 tensor of ints between 0 and 4, inclusive:
103
+
104
+ >>> mt.random.randint(5, size=(2, 4)).execute()
105
+ array([[4, 0, 2, 1],
106
+ [3, 2, 2, 0]])
107
+ """
108
+ sparse = bool(density)
109
+ size = random_state._handle_size(size)
110
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
111
+ op = TensorRandint(
112
+ seed=seed,
113
+ low=low,
114
+ high=high,
115
+ size=size,
116
+ dtype=dtype,
117
+ gpu=gpu,
118
+ sparse=sparse,
119
+ density=density,
120
+ )
121
+ return op(chunk_size=chunk_size)
@@ -0,0 +1,96 @@
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 ..utils import gen_random_seeds
21
+ from .core import TensorRandomOperatorMixin, TensorSimpleRandomData
22
+
23
+
24
+ class TensorRandn(TensorSimpleRandomData, TensorRandomOperatorMixin):
25
+ _op_type_ = opcodes.RAND_RANDN
26
+ _func_name = "randn"
27
+
28
+ def __call__(self, chunk_size=None):
29
+ return self.new_tensor(None, None, raw_chunk_size=chunk_size)
30
+
31
+
32
+ def randn(random_state, *dn, **kw):
33
+ r"""
34
+ Return a sample (or samples) from the "standard normal" distribution.
35
+
36
+ If positive, int_like or int-convertible arguments are provided,
37
+ `randn` generates an array of shape ``(d0, d1, ..., dn)``, filled
38
+ with random floats sampled from a univariate "normal" (Gaussian)
39
+ distribution of mean 0 and variance 1 (if any of the :math:`d_i` are
40
+ floats, they are first converted to integers by truncation). A single
41
+ float randomly sampled from the distribution is returned if no
42
+ argument is provided.
43
+
44
+ This is a convenience function. If you want an interface that takes a
45
+ tuple as the first argument, use `numpy.random.standard_normal` instead.
46
+
47
+ Parameters
48
+ ----------
49
+ d0, d1, ..., dn : int, optional
50
+ The dimensions of the returned tensor, should be all positive.
51
+ If no argument is given a single Python float is returned.
52
+
53
+ Returns
54
+ -------
55
+ Z : Tensor or float
56
+ A ``(d0, d1, ..., dn)``-shaped array of floating-point samples from
57
+ the standard normal distribution, or a single such float if
58
+ no parameters were supplied.
59
+
60
+ See Also
61
+ --------
62
+ random.standard_normal : Similar, but takes a tuple as its argument.
63
+
64
+ Notes
65
+ -----
66
+ For random samples from :math:`N(\mu, \sigma^2)`, use:
67
+
68
+ ``sigma * mt.random.randn(...) + mu``
69
+
70
+ Examples
71
+ --------
72
+ >>> import maxframe.tensor as mt
73
+
74
+ >>> mt.random.randn().execute()
75
+ 2.1923875335537315 #random
76
+
77
+ Two-by-four tensor of samples from N(3, 6.25):
78
+
79
+ >>> (2.5 * mt.random.randn(2, 4) + 3).execute()
80
+ array([[-4.49401501, 4.00950034, -1.81814867, 7.29718677], #random
81
+ [ 0.39924804, 4.68456316, 4.99394529, 4.84057254]]) #random
82
+ """
83
+ if len(dn) == 1 and isinstance(dn[0], (tuple, list)):
84
+ raise TypeError("'tuple' object cannot be interpreted as an integer")
85
+ if "dtype" not in kw:
86
+ kw["dtype"] = np.dtype("f8")
87
+ chunk_size = kw.pop("chunk_size", None)
88
+
89
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
90
+ op = TensorRandn(seed=seed, size=dn, **kw)
91
+
92
+ for key in op.extra_params:
93
+ if not key.startswith("_"):
94
+ raise ValueError(f"randn got unexpected key arguments {key}")
95
+
96
+ return op(chunk_size=chunk_size)
@@ -0,0 +1,123 @@
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 Int64Field
21
+ from ..utils import gen_random_seeds
22
+ from .core import TensorRandomOperatorMixin, TensorSimpleRandomData
23
+
24
+
25
+ class TensorRandomIntegers(TensorSimpleRandomData, TensorRandomOperatorMixin):
26
+ _op_type_ = opcodes.RAND_RANDOM_INTEGERS
27
+
28
+ _fields_ = "low", "high", "size"
29
+ low = Int64Field("low")
30
+ high = Int64Field("high")
31
+ _func_name = "random_integers"
32
+
33
+ def __call__(self, chunk_size=None):
34
+ return self.new_tensor(None, None, raw_chunk_size=chunk_size)
35
+
36
+
37
+ def random_integers(random_state, low, high=None, size=None, chunk_size=None, gpu=None):
38
+ """
39
+ Random integers of type mt.int between `low` and `high`, inclusive.
40
+
41
+ Return random integers of type mt.int from the "discrete uniform"
42
+ distribution in the closed interval [`low`, `high`]. If `high` is
43
+ None (the default), then results are from [1, `low`]. The np.int
44
+ type translates to the C long type used by Python 2 for "short"
45
+ integers and its precision is platform dependent.
46
+
47
+ This function has been deprecated. Use randint instead.
48
+
49
+ Parameters
50
+ ----------
51
+ low : int
52
+ Lowest (signed) integer to be drawn from the distribution (unless
53
+ ``high=None``, in which case this parameter is the *highest* such
54
+ integer).
55
+ high : int, optional
56
+ If provided, the largest (signed) integer to be drawn from the
57
+ distribution (see above for behavior if ``high=None``).
58
+ size : int or tuple of ints, optional
59
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
60
+ ``m * n * k`` samples are drawn. Default is None, in which case a
61
+ single value is returned.
62
+ chunk_size : int or tuple of int or tuple of ints, optional
63
+ Desired chunk size on each dimension
64
+ gpu : bool, optional
65
+ Allocate the tensor on GPU if True, False as default
66
+
67
+ Returns
68
+ -------
69
+ out : int or Tensor of ints
70
+ `size`-shaped array of random integers from the appropriate
71
+ distribution, or a single such random int if `size` not provided.
72
+
73
+ See Also
74
+ --------
75
+ random.randint : Similar to `random_integers`, only for the half-open
76
+ interval [`low`, `high`), and 0 is the lowest value if `high` is
77
+ omitted.
78
+
79
+ Notes
80
+ -----
81
+ To sample from N evenly spaced floating-point numbers between a and b,
82
+ use::
83
+
84
+ a + (b - a) * (np.random.random_integers(N) - 1) / (N - 1.)
85
+
86
+ Examples
87
+ --------
88
+ >>> import maxframe.tensor as mt
89
+
90
+ >>> mt.random.random_integers(5).execute()
91
+ 4
92
+ >>> type(mt.random.random_integers(5).execute())
93
+ <type 'int'>
94
+ >>> mt.random.random_integers(5, size=(3,2)).execute()
95
+ array([[5, 4],
96
+ [3, 3],
97
+ [4, 5]])
98
+
99
+ Choose five random numbers from the set of five evenly-spaced
100
+ numbers between 0 and 2.5, inclusive (*i.e.*, from the set
101
+ :math:`{0, 5/8, 10/8, 15/8, 20/8}`):
102
+
103
+ >>> (2.5 * (mt.random.random_integers(5, size=(5,)) - 1) / 4.).execute()
104
+ array([ 0.625, 1.25 , 0.625, 0.625, 2.5 ])
105
+
106
+ Roll two six sided dice 1000 times and sum the results:
107
+
108
+ >>> d1 = mt.random.random_integers(1, 6, 1000)
109
+ >>> d2 = mt.random.random_integers(1, 6, 1000)
110
+ >>> dsums = d1 + d2
111
+
112
+ Display results as a histogram:
113
+
114
+ >>> import matplotlib.pyplot as plt
115
+ >>> count, bins, ignored = plt.hist(dsums.execute(), 11, normed=True)
116
+ >>> plt.show()
117
+ """
118
+ size = random_state._handle_size(size)
119
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
120
+ op = TensorRandomIntegers(
121
+ seed=seed, size=size, dtype=np.dtype(int), low=low, high=high, gpu=gpu
122
+ )
123
+ return op(chunk_size=chunk_size)
@@ -0,0 +1,86 @@
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 ..utils import gen_random_seeds
21
+ from .core import TensorRandomOperatorMixin, TensorSimpleRandomData
22
+
23
+
24
+ class TensorRandomSample(TensorSimpleRandomData, TensorRandomOperatorMixin):
25
+ _op_type_ = opcodes.RAND_RANDOM_SAMPLE
26
+
27
+ _fields_ = ("size",)
28
+ _func_name = "random_sample"
29
+
30
+ def __call__(self, chunk_size):
31
+ return self.new_tensor(None, None, raw_chunk_size=chunk_size)
32
+
33
+
34
+ def random_sample(random_state, size=None, chunk_size=None, gpu=None, dtype=None):
35
+ """
36
+ Return random floats in the half-open interval [0.0, 1.0).
37
+
38
+ Results are from the "continuous uniform" distribution over the
39
+ stated interval. To sample :math:`Unif[a, b), b > a` multiply
40
+ the output of `random_sample` by `(b-a)` and add `a`::
41
+
42
+ (b - a) * random_sample() + a
43
+
44
+ Parameters
45
+ ----------
46
+ size : int or tuple of ints, optional
47
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
48
+ ``m * n * k`` samples are drawn. Default is None, in which case a
49
+ single value is returned.
50
+ chunk_size : int or tuple of int or tuple of ints, optional
51
+ Desired chunk size on each dimension
52
+ gpu : bool, optional
53
+ Allocate the tensor on GPU if True, False as default
54
+ dtype : data-type, optional
55
+ Data-type of the returned tensor.
56
+
57
+ Returns
58
+ -------
59
+ out : float or Tensor of floats
60
+ Array of random floats of shape `size` (unless ``size=None``, in which
61
+ case a single float is returned).
62
+
63
+ Examples
64
+ --------
65
+ >>> import maxframe.tensor as mt
66
+
67
+ >>> mt.random.random_sample().execute()
68
+ 0.47108547995356098
69
+ >>> type(mt.random.random_sample().execute())
70
+ <type 'float'>
71
+ >>> mt.random.random_sample((5,)).execute()
72
+ array([ 0.30220482, 0.86820401, 0.1654503 , 0.11659149, 0.54323428])
73
+
74
+ Three-by-two array of random numbers from [-5, 0):
75
+
76
+ >>> (5 * mt.random.random_sample((3, 2)) - 5).execute()
77
+ array([[-3.99149989, -0.52338984],
78
+ [-2.99091858, -0.79479508],
79
+ [-1.23204345, -1.75224494]])
80
+ """
81
+ if dtype is None:
82
+ dtype = np.dtype("f8")
83
+ size = random_state._handle_size(size)
84
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
85
+ op = TensorRandomSample(seed=seed, size=size, gpu=gpu, dtype=dtype)
86
+ return op(chunk_size=chunk_size)
@@ -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 TensorRayleigh(TensorDistribution, TensorRandomOperatorMixin):
26
+ _input_fields_ = ["scale"]
27
+ _op_type_ = opcodes.RAND_RAYLEIGH
28
+
29
+ _fields_ = "scale", "size"
30
+ scale = AnyField("scale")
31
+ _func_name = "rayleigh"
32
+
33
+ def __call__(self, scale, chunk_size=None):
34
+ return self.new_tensor([scale], None, raw_chunk_size=chunk_size)
35
+
36
+
37
+ def rayleigh(random_state, scale=1.0, size=None, chunk_size=None, gpu=None, dtype=None):
38
+ r"""
39
+ Draw samples from a Rayleigh distribution.
40
+
41
+ The :math:`\chi` and Weibull distributions are generalizations of the
42
+ Rayleigh.
43
+
44
+ Parameters
45
+ ----------
46
+ scale : float or array_like of floats, optional
47
+ Scale, also equals the mode. Should be >= 0. Default is 1.
48
+ size : int or tuple of ints, optional
49
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
50
+ ``m * n * k`` samples are drawn. If size is ``None`` (default),
51
+ a single value is returned if ``scale`` is a scalar. Otherwise,
52
+ ``mt.array(scale).size`` samples are drawn.
53
+ chunk_size : int or tuple of int or tuple of ints, optional
54
+ Desired chunk size on each dimension
55
+ gpu : bool, optional
56
+ Allocate the tensor on GPU if True, False as default
57
+ dtype : data-type, optional
58
+ Data-type of the returned tensor.
59
+
60
+ Returns
61
+ -------
62
+ out : Tensor or scalar
63
+ Drawn samples from the parameterized Rayleigh distribution.
64
+
65
+ Notes
66
+ -----
67
+ The probability density function for the Rayleigh distribution is
68
+
69
+ .. math:: P(x;scale) = \frac{x}{scale^2}e^{\frac{-x^2}{2 \cdotp scale^2}}
70
+
71
+ The Rayleigh distribution would arise, for example, if the East
72
+ and North components of the wind velocity had identical zero-mean
73
+ Gaussian distributions. Then the wind speed would have a Rayleigh
74
+ distribution.
75
+
76
+ References
77
+ ----------
78
+ .. [1] Brighton Webs Ltd., "Rayleigh Distribution,"
79
+ http://www.brighton-webs.co.uk/distributions/rayleigh.asp
80
+ .. [2] Wikipedia, "Rayleigh distribution"
81
+ http://en.wikipedia.org/wiki/Rayleigh_distribution
82
+
83
+ Examples
84
+ --------
85
+ Draw values from the distribution and plot the histogram
86
+
87
+ >>> import matplotlib.pyplot as plt
88
+ >>> import maxframe.tensor as mt
89
+
90
+ >>> values = plt.hist(mt.random.rayleigh(3, 100000).execute(), bins=200, normed=True)
91
+
92
+ Wave heights tend to follow a Rayleigh distribution. If the mean wave
93
+ height is 1 meter, what fraction of waves are likely to be larger than 3
94
+ meters?
95
+
96
+ >>> meanvalue = 1
97
+ >>> modevalue = mt.sqrt(2 / mt.pi) * meanvalue
98
+ >>> s = mt.random.rayleigh(modevalue, 1000000)
99
+
100
+ The percentage of waves larger than 3 meters is:
101
+
102
+ >>> (100.*mt.sum(s>3)/1000000.).execute()
103
+ 0.087300000000000003
104
+ """
105
+ if dtype is None:
106
+ dtype = np.random.RandomState().rayleigh(handle_array(scale), size=(0,)).dtype
107
+ size = random_state._handle_size(size)
108
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
109
+ op = TensorRayleigh(size=size, seed=seed, gpu=gpu, dtype=dtype)
110
+ return op(scale, chunk_size=chunk_size)
@@ -0,0 +1,61 @@
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
+ import numpy as np
16
+
17
+ from ..core import TENSOR_TYPE
18
+ from ..datasource import tensor as astensor
19
+
20
+
21
+ def shuffle(random_state, x, axis=0):
22
+ r"""
23
+ Modify a sequence in-place by shuffling its contents.
24
+ The order of sub-arrays is changed but their contents remains the same.
25
+
26
+ Parameters
27
+ ----------
28
+ x : array_like
29
+ The array or list to be shuffled.
30
+ axis : int, optional
31
+ The axis which `x` is shuffled along. Default is 0.
32
+
33
+ Returns
34
+ -------
35
+ None
36
+
37
+ Examples
38
+ --------
39
+ >>> import maxframe.tensor as mt
40
+ >>> rng = mt.random.RandomState()
41
+ >>> arr = mt.arange(10)
42
+ >>> rng.shuffle(arr)
43
+ >>> arr.execute()
44
+ array([0, 1, 4, 2, 8, 6, 5, 9, 3, 7]) # random
45
+
46
+ >>> arr = mt.arange(9).reshape((3, 3))
47
+ >>> rng.shuffle(arr)
48
+ >>> arr.execute()
49
+ array([[6, 7, 8], # random
50
+ [0, 1, 2],
51
+ [3, 4, 5]])
52
+ """
53
+ from .permutation import permutation
54
+
55
+ if isinstance(x, (list, np.ndarray, TENSOR_TYPE)):
56
+ x = astensor(x)
57
+ else:
58
+ raise TypeError("x should be list, numpy ndarray or tensor")
59
+
60
+ ret = permutation(random_state, x, axis=axis)
61
+ x.data = ret.data