maxframe 0.1.0b5__cp311-cp311-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-311-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-311-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-311-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-311-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,169 @@
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 KeyField, StringField
21
+ from ..utils import get_order
22
+ from .array import tensor
23
+ from .core import TensorLike, TensorNoInput
24
+
25
+
26
+ class TensorEmptyBase(object):
27
+ __slots__ = ()
28
+
29
+ def __init__(self, *args, **kwargs):
30
+ super().__init__(*args, **kwargs)
31
+ self._gen_rand()
32
+
33
+ def _gen_rand(self):
34
+ if getattr(self, "_rand", None) is None:
35
+ self._obj_set("_rand", np.random.random())
36
+
37
+
38
+ class TensorEmpty(TensorEmptyBase, TensorNoInput):
39
+ __slots__ = ("_rand",)
40
+ _op_type_ = opcodes.TENSOR_EMPTY
41
+
42
+ order = StringField("order", default=None)
43
+
44
+ def __init__(self, dtype=None, **kw):
45
+ dtype = np.dtype(dtype or "f8")
46
+ super().__init__(dtype=dtype, **kw)
47
+
48
+
49
+ def empty(shape, dtype=None, chunk_size=None, gpu=None, order="C"):
50
+ """
51
+ Return a new tensor of given shape and type, without initializing entries.
52
+
53
+ Parameters
54
+ ----------
55
+ shape : int or tuple of int
56
+ Shape of the empty tensor
57
+ dtype : data-type, optional
58
+ Desired output data-type.
59
+ chunk_size : int or tuple of int or tuple of ints, optional
60
+ Desired chunk size on each dimension
61
+ gpu : bool, optional
62
+ Allocate the tensor on GPU if True, False as default
63
+ order : {'C', 'F'}, optional, default: 'C'
64
+ Whether to store multi-dimensional data in row-major
65
+ (C-style) or column-major (Fortran-style) order in
66
+ memory.
67
+
68
+ Returns
69
+ -------
70
+ out : Tensor
71
+ Tensor of uninitialized (arbitrary) data of the given shape, dtype, and
72
+ order. Object arrays will be initialized to None.
73
+
74
+ See Also
75
+ --------
76
+ empty_like, zeros, ones
77
+
78
+ Notes
79
+ -----
80
+ `empty`, unlike `zeros`, does not set the array values to zero,
81
+ and may therefore be marginally faster. On the other hand, it requires
82
+ the user to manually set all the values in the array, and should be
83
+ used with caution.
84
+
85
+ Examples
86
+ --------
87
+ >>> import maxframe.tensor as mt
88
+ >>> mt.empty([2, 2]).execute()
89
+ array([[ -9.74499359e+001, 6.69583040e-309],
90
+ [ 2.13182611e-314, 3.06959433e-309]]) #random
91
+ >>> mt.empty([2, 2], dtype=int).execute()
92
+ array([[-1073741821, -1067949133],
93
+ [ 496041986, 19249760]]) #random
94
+ """
95
+ tensor_order = get_order(
96
+ order,
97
+ None,
98
+ available_options="CF",
99
+ err_msg="only 'C' or 'F' order is permitted",
100
+ )
101
+ op = TensorEmpty(dtype=dtype, gpu=gpu, order=order)
102
+ return op(shape, chunk_size=chunk_size, order=tensor_order)
103
+
104
+
105
+ class TensorEmptyLike(TensorEmptyBase, TensorLike):
106
+ __slots__ = ("_rand",)
107
+ _op_type_ = opcodes.TENSOR_EMPTY_LIKE
108
+
109
+ _input = KeyField("input")
110
+ order = StringField("order", default=None)
111
+
112
+ def __init__(self, dtype=None, gpu=None, sparse=False, **kw):
113
+ dtype = np.dtype(dtype) if dtype is not None else None
114
+ super().__init__(dtype=dtype, gpu=gpu, sparse=sparse, **kw)
115
+
116
+
117
+ def empty_like(a, dtype=None, gpu=None, order="K"):
118
+ """
119
+ Return a new tensor with the same shape and type as a given tensor.
120
+
121
+ Parameters
122
+ ----------
123
+ a : array_like
124
+ The shape and data-type of `a` define these same attributes of the
125
+ returned tensor.
126
+ dtype : data-type, optional
127
+ Overrides the data type of the result.
128
+ gpu : bool, optional
129
+ Allocate the tensor on GPU if True, None as default
130
+ order : {'C', 'F', 'A', or 'K'}, optional
131
+ Overrides the memory layout of the result. 'C' means C-order,
132
+ 'F' means F-order, 'A' means 'F' if ``prototype`` is Fortran
133
+ contiguous, 'C' otherwise. 'K' means match the layout of ``prototype``
134
+ as closely as possible.
135
+
136
+ Returns
137
+ -------
138
+ out : Tensor
139
+ Array of uninitialized (arbitrary) data with the same
140
+ shape and type as `a`.
141
+ See Also
142
+ --------
143
+ ones_like : Return a tensor of ones with shape and type of input.
144
+ zeros_like : Return a tensor of zeros with shape and type of input.
145
+ empty : Return a new uninitialized tensor.
146
+ ones : Return a new tensor setting values to one.
147
+ zeros : Return a new tensor setting values to zero.
148
+ Notes
149
+ -----
150
+ This function does *not* initialize the returned tensor; to do that use
151
+ `zeros_like` or `ones_like` instead. It may be marginally faster than
152
+ the functions that do set the array values.
153
+ Examples
154
+ --------
155
+ >>> import maxframe.tensor as mt
156
+ >>> a = ([1,2,3], [4,5,6]) # a is array-like
157
+ >>> mt.empty_like(a).execute()
158
+ array([[-1073741821, -1073741821, 3], #ranm
159
+ [ 0, 0, -1073741821]])
160
+ >>> a = mt.array([[1., 2., 3.],[4.,5.,6.]])
161
+ >>> mt.empty_like(a).execute()
162
+ array([[ -2.00000715e+000, 1.48219694e-323, -2.00000572e+000],#random
163
+ [ 4.38791518e-305, -2.00000715e+000, 4.17269252e-309]])
164
+ """
165
+ a = tensor(a)
166
+ tensor_order = get_order(order, a.order)
167
+ gpu = a.op.gpu if gpu is None else gpu
168
+ op = TensorEmptyLike(dtype=dtype, gpu=gpu, sparse=a.issparse(), order=order)
169
+ return op(a, order=tensor_order)
@@ -0,0 +1,70 @@
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 BoolField, KeyField
19
+ from ..core import TensorOrder
20
+ from ..utils import to_numpy
21
+ from .core import TensorHasInput
22
+
23
+
24
+ class TensorFromDataFrame(TensorHasInput):
25
+ """represent tensor from DataFrame"""
26
+
27
+ _op_type_ = opcodes.TENSOR_FROM_DATAFRAME
28
+ _input = KeyField("_input")
29
+ extract_multi_index = BoolField("extract_multi_index", default=None)
30
+
31
+ def __call__(self, a, order=None):
32
+ from ...dataframe.core import INDEX_TYPE, IndexValue
33
+
34
+ if (
35
+ self.extract_multi_index
36
+ and isinstance(a, INDEX_TYPE)
37
+ and isinstance(a.index_value.value, IndexValue.MultiIndex)
38
+ ):
39
+ order = a.order if order is None else order
40
+ return self.new_tensor(
41
+ [a], (a.shape[0], len(a.index_value.value.names)), order=order
42
+ )
43
+ else:
44
+ self.extract_multi_index = False
45
+
46
+ return super().__call__(a, order=order)
47
+
48
+
49
+ def from_dataframe(in_df, dtype=None):
50
+ from ...dataframe.utils import build_empty_df
51
+
52
+ if dtype is None:
53
+ empty_pdf = build_empty_df(in_df.dtypes)
54
+ dtype = to_numpy(empty_pdf).dtype
55
+ op = TensorFromDataFrame(dtype=dtype, gpu=in_df.op.gpu)
56
+ return op(in_df, order=TensorOrder.F_ORDER) # return tensor with F-order always
57
+
58
+
59
+ def from_series(in_series, dtype=None):
60
+ op = TensorFromDataFrame(dtype=dtype or in_series.dtype, gpu=in_series.op.gpu)
61
+ return op(in_series, order=TensorOrder.F_ORDER) # return tensor with F-order always
62
+
63
+
64
+ def from_index(in_index, dtype=None, extract_multi_index=False):
65
+ op = TensorFromDataFrame(
66
+ dtype=dtype or in_index.dtype,
67
+ gpu=in_index.op.gpu,
68
+ extract_multi_index=extract_multi_index,
69
+ )
70
+ return op(in_index, order=TensorOrder.F_ORDER) # return tensor with F-order always
@@ -0,0 +1,54 @@
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 collections.abc import Iterable
18
+ from functools import reduce
19
+ from operator import and_
20
+
21
+ import pandas as pd
22
+
23
+ from ... import opcodes
24
+ from ...serialization.serializables import AnyField, KeyField
25
+ from .array import tensor
26
+ from .core import TensorHasInput
27
+
28
+
29
+ class DenseToSparse(TensorHasInput):
30
+ _op_type_ = opcodes.DENSE_TO_SPARSE
31
+
32
+ _input = KeyField("input")
33
+ missing = AnyField("missing", default=None)
34
+
35
+ def __init__(self, **kw):
36
+ super().__init__(sparse=True, **kw)
37
+
38
+ @staticmethod
39
+ def _get_mask(data, missing):
40
+ if isinstance(missing, Iterable):
41
+ return reduce(and_, (DenseToSparse._get_mask(data, m) for m in missing))
42
+ elif pd.isna(missing):
43
+ return ~pd.isna(data)
44
+ else:
45
+ return data != missing
46
+
47
+
48
+ def fromdense(a, missing=None):
49
+ a = tensor(a)
50
+ if a.issparse():
51
+ return a
52
+
53
+ op = DenseToSparse(dtype=a.dtype, gpu=a.op.gpu, missing=missing)
54
+ return op(a)
@@ -0,0 +1,47 @@
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 AnyField, KeyField, StringField
19
+ from ..utils import get_order
20
+ from .array import tensor
21
+ from .core import TensorHasInput
22
+
23
+
24
+ class SparseToDense(TensorHasInput):
25
+ _op_type_ = opcodes.SPARSE_TO_DENSE
26
+
27
+ _input = KeyField("input")
28
+ order = StringField("order", default=None)
29
+ fill_value = AnyField("fill_value", default=None)
30
+
31
+ def __init__(self, **kw):
32
+ super().__init__(sparse=False, **kw)
33
+
34
+
35
+ def fromsparse(a, order="C", fill_value=None):
36
+ a = tensor(a)
37
+ if not a.issparse():
38
+ return a.astype(a.dtype, order=order, copy=False)
39
+
40
+ tensor_order = get_order(
41
+ order,
42
+ None,
43
+ available_options="CF",
44
+ err_msg="only 'C' or 'F' order is permitted",
45
+ )
46
+ op = SparseToDense(dtype=a.dtype, gpu=a.op.gpu, order=order, fill_value=fill_value)
47
+ return op(a, order=tensor_order)
@@ -0,0 +1,186 @@
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, KeyField, StringField
21
+ from ..utils import get_order
22
+ from .array import tensor
23
+ from .core import TensorLike, TensorNoInput
24
+
25
+
26
+ class TensorFull(TensorNoInput):
27
+ _op_type_ = opcodes.TENSOR_FULL
28
+
29
+ fill_value = AnyField("fill_value", default=None)
30
+ order = StringField("order", default=None)
31
+
32
+ def __init__(self, fill_value=None, dtype=None, **kw):
33
+ if dtype is not None:
34
+ dtype = np.dtype(dtype)
35
+ if fill_value is not None:
36
+ fill_value = dtype.type(fill_value)
37
+ elif fill_value is not None:
38
+ dtype = np.array(fill_value).dtype
39
+ super().__init__(fill_value=fill_value, dtype=dtype, **kw)
40
+
41
+
42
+ def full(shape, fill_value, dtype=None, chunk_size=None, gpu=None, order="C"):
43
+ """
44
+ Return a new tensor of given shape and type, filled with `fill_value`.
45
+
46
+ Parameters
47
+ ----------
48
+ shape : int or sequence of ints
49
+ Shape of the new tensor, e.g., ``(2, 3)`` or ``2``.
50
+ fill_value : scalar
51
+ Fill value.
52
+ dtype : data-type, optional
53
+ The desired data-type for the tensor The default, `None`, means
54
+ `np.array(fill_value).dtype`.
55
+ chunk_size : int or tuple of int or tuple of ints, optional
56
+ Desired chunk size on each dimension
57
+ gpu : bool, optional
58
+ Allocate the tensor on GPU if True, False as default
59
+ order : {'C', 'F'}, optional
60
+ Whether to store multidimensional data in C- or Fortran-contiguous
61
+ (row- or column-wise) order in memory.
62
+
63
+ Returns
64
+ -------
65
+ out : Tensor
66
+ Tensor of `fill_value` with the given shape, dtype, and order.
67
+
68
+ See Also
69
+ --------
70
+ zeros_like : Return a tensor of zeros with shape and type of input.
71
+ ones_like : Return a tensor of ones with shape and type of input.
72
+ empty_like : Return an empty tensor with shape and type of input.
73
+ full_like : Fill a tensor with shape and type of input.
74
+ zeros : Return a new tensor setting values to zero.
75
+ ones : Return a new tensor setting values to one.
76
+ empty : Return a new uninitialized tensor.
77
+
78
+ Examples
79
+ --------
80
+ >>> import maxframe.tensor as mt
81
+
82
+ >>> mt.full((2, 2), mt.inf).execute()
83
+ array([[ inf, inf],
84
+ [ inf, inf]])
85
+ >>> mt.full((2, 2), 10).execute()
86
+ array([[10, 10],
87
+ [10, 10]])
88
+
89
+ """
90
+ v = np.asarray(fill_value)
91
+ if len(v.shape) > 0:
92
+ from ..base import broadcast_to
93
+
94
+ return broadcast_to(
95
+ tensor(v, dtype=dtype, chunk_size=chunk_size, gpu=gpu, order=order), shape
96
+ )
97
+
98
+ tensor_order = get_order(
99
+ order,
100
+ None,
101
+ available_options="CF",
102
+ err_msg="only 'C' or 'F' order is permitted",
103
+ )
104
+ op = TensorFull(fill_value, dtype=dtype, gpu=gpu, order=order)
105
+ return op(shape, chunk_size=chunk_size, order=tensor_order)
106
+
107
+
108
+ class TensorFullLike(TensorLike):
109
+ _op_type_ = opcodes.TENSOR_FULL_LIKE
110
+
111
+ _input = KeyField("input")
112
+ fill_value = AnyField("fill_value", default=None)
113
+ order = StringField("order", default=None)
114
+
115
+ def __init__(self, fill_value=None, dtype=None, gpu=None, sparse=False, **kw):
116
+ if dtype is not None:
117
+ dtype = np.dtype(dtype)
118
+ if fill_value is not None:
119
+ fill_value = dtype.type(fill_value)
120
+ elif fill_value is not None:
121
+ dtype = np.array(fill_value).dtype
122
+ super().__init__(
123
+ fill_value=fill_value, dtype=dtype, gpu=gpu, sparse=sparse, **kw
124
+ )
125
+
126
+
127
+ def full_like(a, fill_value, dtype=None, gpu=None, order="K"):
128
+ """
129
+ Return a full tensor with the same shape and type as a given tensor.
130
+
131
+ Parameters
132
+ ----------
133
+ a : array_like
134
+ The shape and data-type of `a` define these same attributes of
135
+ the returned tensor.
136
+ fill_value : scalar
137
+ Fill value.
138
+ dtype : data-type, optional
139
+ Overrides the data type of the result.
140
+ gpu : bool, optional
141
+ Allocate the tensor on GPU if True, None as default
142
+ order : {'C', 'F', 'A', or 'K'}, optional
143
+ Overrides the memory layout of the result. 'C' means C-order,
144
+ 'F' means F-order, 'A' means 'F' if `a` is Fortran contiguous,
145
+ 'C' otherwise. 'K' means match the layout of `a` as closely
146
+ as possible.
147
+
148
+ Returns
149
+ -------
150
+ out : Tensor
151
+ Tensor of `fill_value` with the same shape and type as `a`.
152
+
153
+ See Also
154
+ --------
155
+ empty_like : Return an empty tensor with shape and type of input.
156
+ ones_like : Return a tensor of ones with shape and type of input.
157
+ zeros_like : Return a tensor of zeros with shape and type of input.
158
+ full : Return a new tensor of given shape filled with value.
159
+
160
+ Examples
161
+ --------
162
+ >>> import maxframe.tensor as mt
163
+ >>> x = mt.arange(6, dtype=int)
164
+ >>> mt.full_like(x, 1).execute()
165
+ array([1, 1, 1, 1, 1, 1])
166
+ >>> mt.full_like(x, 0.1).execute()
167
+ array([0, 0, 0, 0, 0, 0])
168
+ >>> mt.full_like(x, 0.1, dtype=mt.double).execute()
169
+ array([ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1])
170
+ >>> mt.full_like(x, mt.nan, dtype=mt.double).execute()
171
+ array([ nan, nan, nan, nan, nan, nan])
172
+
173
+ >>> y = mt.arange(6, dtype=mt.double)
174
+ >>> mt.full_like(y, 0.1).execute()
175
+ array([ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1])
176
+
177
+ """
178
+ a = tensor(a)
179
+ tensor_order = get_order(order, a.order)
180
+ if dtype is None:
181
+ dtype = a.dtype
182
+ gpu = a.op.gpu if gpu is None else gpu
183
+ op = TensorFullLike(
184
+ fill_value=fill_value, dtype=dtype, gpu=gpu, sparse=a.issparse()
185
+ )
186
+ return op(a, order=tensor_order)
@@ -0,0 +1,173 @@
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 (
21
+ AnyField,
22
+ FieldTypes,
23
+ KeyField,
24
+ StringField,
25
+ TupleField,
26
+ )
27
+ from ..utils import get_order
28
+ from .array import tensor
29
+ from .core import TensorLike, TensorNoInput
30
+
31
+
32
+ class TensorOnes(TensorNoInput):
33
+ _op_type_ = opcodes.TENSOR_ONES
34
+
35
+ order = StringField("order")
36
+ shape = TupleField("shape", FieldTypes.int64)
37
+ chunk_size = AnyField("chunk_size")
38
+
39
+ def __init__(self, shape=None, **kwargs):
40
+ if type(shape) is int:
41
+ shape = (shape,)
42
+ super().__init__(shape=shape, **kwargs)
43
+
44
+
45
+ def ones(shape, dtype=None, chunk_size=None, gpu=None, order="C"):
46
+ """
47
+ Return a new tensor of given shape and type, filled with ones.
48
+
49
+ Parameters
50
+ ----------
51
+ shape : int or sequence of ints
52
+ Shape of the new tensor, e.g., ``(2, 3)`` or ``2``.
53
+ dtype : data-type, optional
54
+ The desired data-type for the tensor, e.g., `mt.int8`. Default is
55
+ `mt.float64`.
56
+ chunk_size : int or tuple of int or tuple of ints, optional
57
+ Desired chunk size on each dimension
58
+ gpu : bool, optional
59
+ Allocate the tensor on GPU if True, False as default
60
+ order : {'C', 'F'}, optional, default: C
61
+ Whether to store multi-dimensional data in row-major
62
+ (C-style) or column-major (Fortran-style) order in
63
+ memory.
64
+
65
+ Returns
66
+ -------
67
+ out : Tensor
68
+ Tensor of ones with the given shape, dtype, and order.
69
+
70
+ See Also
71
+ --------
72
+ zeros, ones_like
73
+
74
+ Examples
75
+ --------
76
+ >>> import maxframe.tensor as mt
77
+
78
+ >>> mt.ones(5).execute()
79
+ array([ 1., 1., 1., 1., 1.])
80
+
81
+ >>> mt.ones((5,), dtype=int).execute()
82
+ array([1, 1, 1, 1, 1])
83
+
84
+ >>> mt.ones((2, 1)).execute()
85
+ array([[ 1.],
86
+ [ 1.]])
87
+
88
+ >>> s = (2,2)
89
+ >>> mt.ones(s).execute()
90
+ array([[ 1., 1.],
91
+ [ 1., 1.]])
92
+
93
+ """
94
+ tensor_order = get_order(
95
+ order,
96
+ None,
97
+ available_options="CF",
98
+ err_msg="only 'C' or 'F' order is permitted",
99
+ )
100
+ dtype = np.dtype(dtype or "f8")
101
+ op = TensorOnes(
102
+ dtype=dtype, shape=shape, chunk_size=chunk_size, gpu=gpu, order=order
103
+ )
104
+ return op(shape, chunk_size=chunk_size, order=tensor_order)
105
+
106
+
107
+ class TensorOnesLike(TensorLike):
108
+ _op_type_ = opcodes.TENSOR_ONES_LIKE
109
+
110
+ _input = KeyField("input")
111
+
112
+ def __init__(self, dtype=None, sparse=False, **kw):
113
+ dtype = np.dtype(dtype) if dtype is not None else None
114
+ super().__init__(dtype=dtype, sparse=sparse, **kw)
115
+
116
+
117
+ def ones_like(a, dtype=None, gpu=None, order="K"):
118
+ """
119
+ Return a tensor of ones with the same shape and type as a given tensor.
120
+
121
+ Parameters
122
+ ----------
123
+ a : array_like
124
+ The shape and data-type of `a` define these same attributes of
125
+ the returned tensor.
126
+ dtype : data-type, optional
127
+ Overrides the data type of the result.
128
+ gpu : bool, optional
129
+ Allocate the tensor on GPU if True, None as default
130
+ order : {'C', 'F', 'A', or 'K'}, optional
131
+ Overrides the memory layout of the result. 'C' means C-order,
132
+ 'F' means F-order, 'A' means 'F' if `a` is Fortran contiguous,
133
+ 'C' otherwise. 'K' means match the layout of `a` as closely
134
+ as possible.
135
+
136
+ Returns
137
+ -------
138
+ out : Tensor
139
+ Tensor of ones with the same shape and type as `a`.
140
+
141
+ See Also
142
+ --------
143
+ zeros_like : Return a tensor of zeros with shape and type of input.
144
+ empty_like : Return a empty tensor with shape and type of input.
145
+ zeros : Return a new tensor setting values to zero.
146
+ ones : Return a new tensor setting values to one.
147
+ empty : Return a new uninitialized tensor.
148
+
149
+ Examples
150
+ --------
151
+ >>> import maxframe.tensor as mt
152
+
153
+ >>> x = mt.arange(6)
154
+ >>> x = x.reshape((2, 3))
155
+ >>> x.execute()
156
+ array([[0, 1, 2],
157
+ [3, 4, 5]])
158
+ >>> mt.ones_like(x).execute()
159
+ array([[1, 1, 1],
160
+ [1, 1, 1]])
161
+
162
+ >>> y = mt.arange(3, dtype=float)
163
+ >>> y.execute()
164
+ array([ 0., 1., 2.])
165
+ >>> mt.ones_like(y).execute()
166
+ array([ 1., 1., 1.])
167
+
168
+ """
169
+ a = tensor(a)
170
+ tensor_order = get_order(order, a.order)
171
+ gpu = a.op.gpu if gpu is None else gpu
172
+ op = TensorOnesLike(dtype=dtype, gpu=gpu, sparse=a.issparse(), order=order)
173
+ return op(a, order=tensor_order)