maxframe 0.1.0b5__cp38-cp38-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-38-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-38-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-38-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-38-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 +2 -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,119 @@
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 TensorTriangular(TensorDistribution, TensorRandomOperatorMixin):
26
+ _input_fields_ = ["left", "mode", "right"]
27
+ _op_type_ = opcodes.RAND_TRIANGULAR
28
+
29
+ _fields_ = "left", "mode", "right", "size"
30
+ left = AnyField("left")
31
+ mode = AnyField("mode")
32
+ right = AnyField("right")
33
+ _func_name = "triangular"
34
+
35
+ def __call__(self, left, mode, right, chunk_size=None):
36
+ return self.new_tensor([left, mode, right], None, raw_chunk_size=chunk_size)
37
+
38
+
39
+ def triangular(
40
+ random_state, left, mode, right, size=None, chunk_size=None, gpu=None, dtype=None
41
+ ):
42
+ r"""
43
+ Draw samples from the triangular distribution over the
44
+ interval ``[left, right]``.
45
+
46
+ The triangular distribution is a continuous probability
47
+ distribution with lower limit left, peak at mode, and upper
48
+ limit right. Unlike the other distributions, these parameters
49
+ directly define the shape of the pdf.
50
+
51
+ Parameters
52
+ ----------
53
+ left : float or array_like of floats
54
+ Lower limit.
55
+ mode : float or array_like of floats
56
+ The value where the peak of the distribution occurs.
57
+ The value should fulfill the condition ``left <= mode <= right``.
58
+ right : float or array_like of floats
59
+ Upper limit, should be larger than `left`.
60
+ size : int or tuple of ints, optional
61
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
62
+ ``m * n * k`` samples are drawn. If size is ``None`` (default),
63
+ a single value is returned if ``left``, ``mode``, and ``right``
64
+ are all scalars. Otherwise, ``mt.broadcast(left, mode, right).size``
65
+ 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 triangular distribution.
77
+
78
+ Notes
79
+ -----
80
+ The probability density function for the triangular distribution is
81
+
82
+ .. math:: P(x;l, m, r) = \begin{cases}
83
+ \frac{2(x-l)}{(r-l)(m-l)}& \text{for $l \leq x \leq m$},\\
84
+ \frac{2(r-x)}{(r-l)(r-m)}& \text{for $m \leq x \leq r$},\\
85
+ 0& \text{otherwise}.
86
+ \end{cases}
87
+
88
+ The triangular distribution is often used in ill-defined
89
+ problems where the underlying distribution is not known, but
90
+ some knowledge of the limits and mode exists. Often it is used
91
+ in simulations.
92
+
93
+ References
94
+ ----------
95
+ .. [1] Wikipedia, "Triangular distribution"
96
+ http://en.wikipedia.org/wiki/Triangular_distribution
97
+
98
+ Examples
99
+ --------
100
+ Draw values from the distribution and plot the histogram:
101
+
102
+ >>> import matplotlib.pyplot as plt
103
+ >>> import maxframe.tensor as mt
104
+ >>> h = plt.hist(mt.random.triangular(-3, 0, 8, 100000).execute(), bins=200,
105
+ ... normed=True)
106
+ >>> plt.show()
107
+ """
108
+ if dtype is None:
109
+ dtype = (
110
+ np.random.RandomState()
111
+ .triangular(
112
+ handle_array(left), handle_array(mode), handle_array(right), size=(0,)
113
+ )
114
+ .dtype
115
+ )
116
+ size = random_state._handle_size(size)
117
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
118
+ op = TensorTriangular(size=size, seed=seed, gpu=gpu, dtype=dtype)
119
+ return op(left, mode, right, chunk_size=chunk_size)
@@ -0,0 +1,131 @@
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 TensorUniform(TensorDistribution, TensorRandomOperatorMixin):
26
+ _input_fields_ = ["low", "high"]
27
+ _op_type_ = opcodes.RAND_UNIFORM
28
+
29
+ _fields_ = "low", "high", "size"
30
+ low = AnyField("low")
31
+ high = AnyField("high")
32
+ _func_name = "uniform"
33
+
34
+ def __call__(self, low, high, chunk_size=None):
35
+ return self.new_tensor([low, high], None, raw_chunk_size=chunk_size)
36
+
37
+
38
+ def uniform(
39
+ random_state, low=0.0, high=1.0, size=None, chunk_size=None, gpu=None, dtype=None
40
+ ):
41
+ r"""
42
+ Draw samples from a uniform distribution.
43
+
44
+ Samples are uniformly distributed over the half-open interval
45
+ ``[low, high)`` (includes low, but excludes high). In other words,
46
+ any value within the given interval is equally likely to be drawn
47
+ by `uniform`.
48
+
49
+ Parameters
50
+ ----------
51
+ low : float or array_like of floats, optional
52
+ Lower boundary of the output interval. All values generated will be
53
+ greater than or equal to low. The default value is 0.
54
+ high : float or array_like of floats
55
+ Upper boundary of the output interval. All values generated will be
56
+ less than high. The default value is 1.0.
57
+ size : int or tuple of ints, optional
58
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
59
+ ``m * n * k`` samples are drawn. If size is ``None`` (default),
60
+ a single value is returned if ``low`` and ``high`` are both scalars.
61
+ Otherwise, ``mt.broadcast(low, high).size`` samples are drawn.
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
+ dtype : data-type, optional
67
+ Data-type of the returned tensor.
68
+
69
+ Returns
70
+ -------
71
+ out : Tensor or scalar
72
+ Drawn samples from the parameterized uniform distribution.
73
+
74
+ See Also
75
+ --------
76
+ randint : Discrete uniform distribution, yielding integers.
77
+ random_integers : Discrete uniform distribution over the closed
78
+ interval ``[low, high]``.
79
+ random_sample : Floats uniformly distributed over ``[0, 1)``.
80
+ random : Alias for `random_sample`.
81
+ rand : Convenience function that accepts dimensions as input, e.g.,
82
+ ``rand(2,2)`` would generate a 2-by-2 array of floats,
83
+ uniformly distributed over ``[0, 1)``.
84
+
85
+ Notes
86
+ -----
87
+ The probability density function of the uniform distribution is
88
+
89
+ .. math:: p(x) = \frac{1}{b - a}
90
+
91
+ anywhere within the interval ``[a, b)``, and zero elsewhere.
92
+
93
+ When ``high`` == ``low``, values of ``low`` will be returned.
94
+ If ``high`` < ``low``, the results are officially undefined
95
+ and may eventually raise an error, i.e. do not rely on this
96
+ function to behave when passed arguments satisfying that
97
+ inequality condition.
98
+
99
+ Examples
100
+ --------
101
+ Draw samples from the distribution:
102
+
103
+ >>> import maxframe.tensor as mt
104
+
105
+ >>> s = mt.random.uniform(-1,0,1000)
106
+
107
+ All values are within the given interval:
108
+
109
+ >>> mt.all(s >= -1).execute()
110
+ True
111
+ >>> mt.all(s < 0).execute()
112
+ True
113
+
114
+ Display the histogram of the samples, along with the
115
+ probability density function:
116
+
117
+ >>> import matplotlib.pyplot as plt
118
+ >>> count, bins, ignored = plt.hist(s.execute(), 15, normed=True)
119
+ >>> plt.plot(bins, mt.ones_like(bins).execute(), linewidth=2, color='r')
120
+ >>> plt.show()
121
+ """
122
+ if dtype is None:
123
+ dtype = (
124
+ np.random.RandomState()
125
+ .uniform(handle_array(low), handle_array(high), size=(0,))
126
+ .dtype
127
+ )
128
+ size = random_state._handle_size(size)
129
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
130
+ op = TensorUniform(size=size, seed=seed, gpu=gpu, dtype=dtype)
131
+ return op(low, high, chunk_size=chunk_size)
@@ -0,0 +1,131 @@
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 TensorVonmises(TensorDistribution, TensorRandomOperatorMixin):
26
+ _input_fields_ = ["mu", "kappa"]
27
+ _op_type_ = opcodes.RAND_VONMISES
28
+
29
+ _fields_ = "mu", "kappa", "size"
30
+ mu = AnyField("mu")
31
+ kappa = AnyField("kappa")
32
+ _func_name = "vonmises"
33
+
34
+ def __call__(self, mu, kappa, chunk_size=None):
35
+ return self.new_tensor([mu, kappa], None, raw_chunk_size=chunk_size)
36
+
37
+
38
+ def vonmises(random_state, mu, kappa, size=None, chunk_size=None, gpu=None, dtype=None):
39
+ r"""
40
+ Draw samples from a von Mises distribution.
41
+
42
+ Samples are drawn from a von Mises distribution with specified mode
43
+ (mu) and dispersion (kappa), on the interval [-pi, pi].
44
+
45
+ The von Mises distribution (also known as the circular normal
46
+ distribution) is a continuous probability distribution on the unit
47
+ circle. It may be thought of as the circular analogue of the normal
48
+ distribution.
49
+
50
+ Parameters
51
+ ----------
52
+ mu : float or array_like of floats
53
+ Mode ("center") of the distribution.
54
+ kappa : float or array_like of floats
55
+ Dispersion of the distribution, has to be >=0.
56
+ size : int or tuple of ints, optional
57
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
58
+ ``m * n * k`` samples are drawn. If size is ``None`` (default),
59
+ a single value is returned if ``mu`` and ``kappa`` are both scalars.
60
+ Otherwise, ``np.broadcast(mu, kappa).size`` samples are drawn.
61
+ chunk_size : int or tuple of int or tuple of ints, optional
62
+ Desired chunk size on each dimension
63
+ gpu : bool, optional
64
+ Allocate the tensor on GPU if True, False as default
65
+ dtype : data-type, optional
66
+ Data-type of the returned tensor.
67
+
68
+ Returns
69
+ -------
70
+ out : Tensor or scalar
71
+ Drawn samples from the parameterized von Mises distribution.
72
+
73
+ See Also
74
+ --------
75
+ scipy.stats.vonmises : probability density function, distribution, or
76
+ cumulative density function, etc.
77
+
78
+ Notes
79
+ -----
80
+ The probability density for the von Mises distribution is
81
+
82
+ .. math:: p(x) = \frac{e^{\kappa cos(x-\mu)}}{2\pi I_0(\kappa)},
83
+
84
+ where :math:`\mu` is the mode and :math:`\kappa` the dispersion,
85
+ and :math:`I_0(\kappa)` is the modified Bessel function of order 0.
86
+
87
+ The von Mises is named for Richard Edler von Mises, who was born in
88
+ Austria-Hungary, in what is now the Ukraine. He fled to the United
89
+ States in 1939 and became a professor at Harvard. He worked in
90
+ probability theory, aerodynamics, fluid mechanics, and philosophy of
91
+ science.
92
+
93
+ References
94
+ ----------
95
+ .. [1] Abramowitz, M. and Stegun, I. A. (Eds.). "Handbook of
96
+ Mathematical Functions with Formulas, Graphs, and Mathematical
97
+ Tables, 9th printing," New York: Dover, 1972.
98
+ .. [2] von Mises, R., "Mathematical Theory of Probability
99
+ and Statistics", New York: Academic Press, 1964.
100
+
101
+ Examples
102
+ --------
103
+ Draw samples from the distribution:
104
+
105
+ >>> import maxframe.tensor as mt
106
+
107
+ >>> mu, kappa = 0.0, 4.0 # mean and dispersion
108
+ >>> s = mt.random.vonmises(mu, kappa, 1000)
109
+
110
+ Display the histogram of the samples, along with
111
+ the probability density function:
112
+
113
+ >>> import matplotlib.pyplot as plt
114
+ >>> from scipy.special import i0
115
+ >>> plt.hist(s.execute(), 50, normed=True)
116
+ >>> x = mt.linspace(-mt.pi, mt.pi, num=51)
117
+ >>> y = mt.exp(kappa*mt.cos(x-mu))/(2*mt.pi*i0(kappa))
118
+ >>> plt.plot(x.execute(), y.execute(), linewidth=2, color='r')
119
+ >>> plt.show()
120
+ """
121
+ if dtype is None:
122
+ dtype = (
123
+ np.random.RandomState()
124
+ .vonmises(handle_array(mu), handle_array(kappa), size=(0,))
125
+ .dtype
126
+ )
127
+
128
+ size = random_state._handle_size(size)
129
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
130
+ op = TensorVonmises(size=size, seed=seed, gpu=gpu, dtype=dtype)
131
+ return op(mu, kappa, chunk_size=chunk_size)
@@ -0,0 +1,114 @@
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 TensorWald(TensorDistribution, TensorRandomOperatorMixin):
26
+ _input_fields_ = ["mean", "scale"]
27
+ _op_type_ = opcodes.RAND_WALD
28
+
29
+ _fields_ = "mean", "scale", "size"
30
+ mean = AnyField("mean")
31
+ scale = AnyField("scale")
32
+ _func_name = "wald"
33
+
34
+ def __call__(self, mean, scale, chunk_size=None):
35
+ return self.new_tensor([mean, scale], None, raw_chunk_size=chunk_size)
36
+
37
+
38
+ def wald(random_state, mean, scale, size=None, chunk_size=None, gpu=None, dtype=None):
39
+ r"""
40
+ Draw samples from a Wald, or inverse Gaussian, distribution.
41
+
42
+ As the scale approaches infinity, the distribution becomes more like a
43
+ Gaussian. Some references claim that the Wald is an inverse Gaussian
44
+ with mean equal to 1, but this is by no means universal.
45
+
46
+ The inverse Gaussian distribution was first studied in relationship to
47
+ Brownian motion. In 1956 M.C.K. Tweedie used the name inverse Gaussian
48
+ because there is an inverse relationship between the time to cover a
49
+ unit distance and distance covered in unit time.
50
+
51
+ Parameters
52
+ ----------
53
+ mean : float or array_like of floats
54
+ Distribution mean, should be > 0.
55
+ scale : float or array_like of floats
56
+ Scale parameter, should be >= 0.
57
+ size : int or tuple of ints, optional
58
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
59
+ ``m * n * k`` samples are drawn. If size is ``None`` (default),
60
+ a single value is returned if ``mean`` and ``scale`` are both scalars.
61
+ Otherwise, ``np.broadcast(mean, scale).size`` samples are drawn.
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
+ dtype : data-type, optional
67
+ Data-type of the returned tensor.
68
+
69
+ Returns
70
+ -------
71
+ out : Tensor or scalar
72
+ Drawn samples from the parameterized Wald distribution.
73
+
74
+ Notes
75
+ -----
76
+ The probability density function for the Wald distribution is
77
+
78
+ .. math:: P(x;mean,scale) = \sqrt{\frac{scale}{2\pi x^3}}e^
79
+ \frac{-scale(x-mean)^2}{2\cdotp mean^2x}
80
+
81
+ As noted above the inverse Gaussian distribution first arise
82
+ from attempts to model Brownian motion. It is also a
83
+ competitor to the Weibull for use in reliability modeling and
84
+ modeling stock returns and interest rate processes.
85
+
86
+ References
87
+ ----------
88
+ .. [1] Brighton Webs Ltd., Wald Distribution,
89
+ http://www.brighton-webs.co.uk/distributions/wald.asp
90
+ .. [2] Chhikara, Raj S., and Folks, J. Leroy, "The Inverse Gaussian
91
+ Distribution: Theory : Methodology, and Applications", CRC Press,
92
+ 1988.
93
+ .. [3] Wikipedia, "Wald distribution"
94
+ http://en.wikipedia.org/wiki/Wald_distribution
95
+
96
+ Examples
97
+ --------
98
+ Draw values from the distribution and plot the histogram:
99
+
100
+ >>> import matplotlib.pyplot as plt
101
+ >>> import maxframe.tensor as mt
102
+ >>> h = plt.hist(mt.random.wald(3, 2, 100000).execute(), bins=200, normed=True)
103
+ >>> plt.show()
104
+ """
105
+ if dtype is None:
106
+ dtype = (
107
+ np.random.RandomState()
108
+ .wald(handle_array(mean), handle_array(scale), size=(0,))
109
+ .dtype
110
+ )
111
+ size = random_state._handle_size(size)
112
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
113
+ op = TensorWald(size=size, seed=seed, gpu=gpu, dtype=dtype)
114
+ return op(mean, scale, chunk_size=chunk_size)
@@ -0,0 +1,140 @@
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 TensorWeibull(TensorDistribution, TensorRandomOperatorMixin):
26
+ _input_fields_ = ["a"]
27
+ _op_type_ = opcodes.RAND_WEIBULL
28
+
29
+ _fields_ = "a", "size"
30
+ a = AnyField("a")
31
+ _func_name = "weibull"
32
+
33
+ def __call__(self, a, chunk_size=None):
34
+ return self.new_tensor([a], None, raw_chunk_size=chunk_size)
35
+
36
+
37
+ def weibull(random_state, a, size=None, chunk_size=None, gpu=None, dtype=None):
38
+ r"""
39
+ Draw samples from a Weibull distribution.
40
+
41
+ Draw samples from a 1-parameter Weibull distribution with the given
42
+ shape parameter `a`.
43
+
44
+ .. math:: X = (-ln(U))^{1/a}
45
+
46
+ Here, U is drawn from the uniform distribution over (0,1].
47
+
48
+ The more common 2-parameter Weibull, including a scale parameter
49
+ :math:`\lambda` is just :math:`X = \lambda(-ln(U))^{1/a}`.
50
+
51
+ Parameters
52
+ ----------
53
+ a : float or array_like of floats
54
+ Shape of the distribution. Should be greater than zero.
55
+ size : int or tuple of ints, optional
56
+ Output shape. If the given shape is, e.g., ``(m, n, k)``, then
57
+ ``m * n * k`` samples are drawn. If size is ``None`` (default),
58
+ a single value is returned if ``a`` is a scalar. Otherwise,
59
+ ``mt.array(a).size`` samples are drawn.
60
+ chunk_size : int or tuple of int or tuple of ints, optional
61
+ Desired chunk size on each dimension
62
+ gpu : bool, optional
63
+ Allocate the tensor on GPU if True, False as default
64
+ dtype : data-type, optional
65
+ Data-type of the returned tensor.
66
+
67
+ Returns
68
+ -------
69
+ out : Tensor or scalar
70
+ Drawn samples from the parameterized Weibull distribution.
71
+
72
+ See Also
73
+ --------
74
+ scipy.stats.weibull_max
75
+ scipy.stats.weibull_min
76
+ scipy.stats.genextreme
77
+ gumbel
78
+
79
+ Notes
80
+ -----
81
+ The Weibull (or Type III asymptotic extreme value distribution
82
+ for smallest values, SEV Type III, or Rosin-Rammler
83
+ distribution) is one of a class of Generalized Extreme Value
84
+ (GEV) distributions used in modeling extreme value problems.
85
+ This class includes the Gumbel and Frechet distributions.
86
+
87
+ The probability density for the Weibull distribution is
88
+
89
+ .. math:: p(x) = \frac{a}
90
+ {\lambda}(\frac{x}{\lambda})^{a-1}e^{-(x/\lambda)^a},
91
+
92
+ where :math:`a` is the shape and :math:`\lambda` the scale.
93
+
94
+ The function has its peak (the mode) at
95
+ :math:`\lambda(\frac{a-1}{a})^{1/a}`.
96
+
97
+ When ``a = 1``, the Weibull distribution reduces to the exponential
98
+ distribution.
99
+
100
+ References
101
+ ----------
102
+ .. [1] Waloddi Weibull, Royal Technical University, Stockholm,
103
+ 1939 "A Statistical Theory Of The Strength Of Materials",
104
+ Ingeniorsvetenskapsakademiens Handlingar Nr 151, 1939,
105
+ Generalstabens Litografiska Anstalts Forlag, Stockholm.
106
+ .. [2] Waloddi Weibull, "A Statistical Distribution Function of
107
+ Wide Applicability", Journal Of Applied Mechanics ASME Paper
108
+ 1951.
109
+ .. [3] Wikipedia, "Weibull distribution",
110
+ http://en.wikipedia.org/wiki/Weibull_distribution
111
+
112
+ Examples
113
+ --------
114
+ Draw samples from the distribution:
115
+
116
+ >>> import maxframe.tensor as mt
117
+
118
+ >>> a = 5. # shape
119
+ >>> s = mt.random.weibull(a, 1000)
120
+
121
+ Display the histogram of the samples, along with
122
+ the probability density function:
123
+
124
+ >>> import matplotlib.pyplot as plt
125
+ >>> x = mt.arange(1,100.)/50.
126
+ >>> def weib(x,n,a):
127
+ ... return (a / n) * (x / n)**(a - 1) * mt.exp(-(x / n)**a)
128
+
129
+ >>> count, bins, ignored = plt.hist(mt.random.weibull(5.,1000).execute())
130
+ >>> x = mt.arange(1,100.)/50.
131
+ >>> scale = count.max()/weib(x, 1., 5.).max()
132
+ >>> plt.plot(x.execute(), (weib(x, 1., 5.)*scale).execute())
133
+ >>> plt.show()
134
+ """
135
+ if dtype is None:
136
+ dtype = np.random.RandomState().weibull(handle_array(a), size=(0,)).dtype
137
+ size = random_state._handle_size(size)
138
+ seed = gen_random_seeds(1, random_state.to_numpy())[0]
139
+ op = TensorWeibull(size=size, seed=seed, gpu=gpu, dtype=dtype)
140
+ return op(a, chunk_size=chunk_size)