maxframe 0.1.0b5__cp310-cp310-macosx_11_0_arm64.whl

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

Potentially problematic release.


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

Files changed (647) hide show
  1. maxframe/__init__.py +32 -0
  2. maxframe/_utils.cpython-310-darwin.so +0 -0
  3. maxframe/_utils.pxd +33 -0
  4. maxframe/_utils.pyx +547 -0
  5. maxframe/codegen.py +528 -0
  6. maxframe/config/__init__.py +15 -0
  7. maxframe/config/config.py +443 -0
  8. maxframe/config/tests/__init__.py +13 -0
  9. maxframe/config/tests/test_config.py +103 -0
  10. maxframe/config/tests/test_validators.py +34 -0
  11. maxframe/config/validators.py +57 -0
  12. maxframe/conftest.py +139 -0
  13. maxframe/core/__init__.py +65 -0
  14. maxframe/core/base.py +156 -0
  15. maxframe/core/entity/__init__.py +44 -0
  16. maxframe/core/entity/chunks.py +68 -0
  17. maxframe/core/entity/core.py +152 -0
  18. maxframe/core/entity/executable.py +337 -0
  19. maxframe/core/entity/fuse.py +73 -0
  20. maxframe/core/entity/objects.py +100 -0
  21. maxframe/core/entity/output_types.py +90 -0
  22. maxframe/core/entity/tileables.py +438 -0
  23. maxframe/core/entity/utils.py +24 -0
  24. maxframe/core/graph/__init__.py +17 -0
  25. maxframe/core/graph/builder/__init__.py +16 -0
  26. maxframe/core/graph/builder/base.py +86 -0
  27. maxframe/core/graph/builder/chunk.py +430 -0
  28. maxframe/core/graph/builder/tileable.py +34 -0
  29. maxframe/core/graph/builder/utils.py +41 -0
  30. maxframe/core/graph/core.cpython-310-darwin.so +0 -0
  31. maxframe/core/graph/core.pyx +467 -0
  32. maxframe/core/graph/entity.py +171 -0
  33. maxframe/core/graph/tests/__init__.py +13 -0
  34. maxframe/core/graph/tests/test_graph.py +205 -0
  35. maxframe/core/mode.py +96 -0
  36. maxframe/core/operator/__init__.py +34 -0
  37. maxframe/core/operator/base.py +450 -0
  38. maxframe/core/operator/core.py +276 -0
  39. maxframe/core/operator/fetch.py +53 -0
  40. maxframe/core/operator/fuse.py +29 -0
  41. maxframe/core/operator/objects.py +72 -0
  42. maxframe/core/operator/shuffle.py +111 -0
  43. maxframe/core/operator/tests/__init__.py +13 -0
  44. maxframe/core/operator/tests/test_core.py +64 -0
  45. maxframe/core/tests/__init__.py +13 -0
  46. maxframe/core/tests/test_mode.py +75 -0
  47. maxframe/dataframe/__init__.py +81 -0
  48. maxframe/dataframe/arithmetic/__init__.py +359 -0
  49. maxframe/dataframe/arithmetic/abs.py +33 -0
  50. maxframe/dataframe/arithmetic/add.py +60 -0
  51. maxframe/dataframe/arithmetic/arccos.py +28 -0
  52. maxframe/dataframe/arithmetic/arccosh.py +28 -0
  53. maxframe/dataframe/arithmetic/arcsin.py +28 -0
  54. maxframe/dataframe/arithmetic/arcsinh.py +28 -0
  55. maxframe/dataframe/arithmetic/arctan.py +28 -0
  56. maxframe/dataframe/arithmetic/arctanh.py +28 -0
  57. maxframe/dataframe/arithmetic/around.py +152 -0
  58. maxframe/dataframe/arithmetic/bitwise_and.py +46 -0
  59. maxframe/dataframe/arithmetic/bitwise_or.py +50 -0
  60. maxframe/dataframe/arithmetic/bitwise_xor.py +46 -0
  61. maxframe/dataframe/arithmetic/ceil.py +28 -0
  62. maxframe/dataframe/arithmetic/core.py +342 -0
  63. maxframe/dataframe/arithmetic/cos.py +28 -0
  64. maxframe/dataframe/arithmetic/cosh.py +28 -0
  65. maxframe/dataframe/arithmetic/degrees.py +28 -0
  66. maxframe/dataframe/arithmetic/docstring.py +442 -0
  67. maxframe/dataframe/arithmetic/equal.py +56 -0
  68. maxframe/dataframe/arithmetic/exp.py +28 -0
  69. maxframe/dataframe/arithmetic/exp2.py +28 -0
  70. maxframe/dataframe/arithmetic/expm1.py +28 -0
  71. maxframe/dataframe/arithmetic/floor.py +28 -0
  72. maxframe/dataframe/arithmetic/floordiv.py +64 -0
  73. maxframe/dataframe/arithmetic/greater.py +57 -0
  74. maxframe/dataframe/arithmetic/greater_equal.py +57 -0
  75. maxframe/dataframe/arithmetic/invert.py +33 -0
  76. maxframe/dataframe/arithmetic/is_ufuncs.py +62 -0
  77. maxframe/dataframe/arithmetic/less.py +57 -0
  78. maxframe/dataframe/arithmetic/less_equal.py +57 -0
  79. maxframe/dataframe/arithmetic/log.py +28 -0
  80. maxframe/dataframe/arithmetic/log10.py +28 -0
  81. maxframe/dataframe/arithmetic/log2.py +28 -0
  82. maxframe/dataframe/arithmetic/mod.py +60 -0
  83. maxframe/dataframe/arithmetic/multiply.py +60 -0
  84. maxframe/dataframe/arithmetic/negative.py +33 -0
  85. maxframe/dataframe/arithmetic/not_equal.py +56 -0
  86. maxframe/dataframe/arithmetic/power.py +68 -0
  87. maxframe/dataframe/arithmetic/radians.py +28 -0
  88. maxframe/dataframe/arithmetic/sin.py +28 -0
  89. maxframe/dataframe/arithmetic/sinh.py +28 -0
  90. maxframe/dataframe/arithmetic/sqrt.py +28 -0
  91. maxframe/dataframe/arithmetic/subtract.py +64 -0
  92. maxframe/dataframe/arithmetic/tan.py +28 -0
  93. maxframe/dataframe/arithmetic/tanh.py +28 -0
  94. maxframe/dataframe/arithmetic/tests/__init__.py +13 -0
  95. maxframe/dataframe/arithmetic/tests/test_arithmetic.py +695 -0
  96. maxframe/dataframe/arithmetic/truediv.py +64 -0
  97. maxframe/dataframe/arithmetic/trunc.py +28 -0
  98. maxframe/dataframe/arrays.py +864 -0
  99. maxframe/dataframe/core.py +2417 -0
  100. maxframe/dataframe/datasource/__init__.py +15 -0
  101. maxframe/dataframe/datasource/core.py +81 -0
  102. maxframe/dataframe/datasource/dataframe.py +59 -0
  103. maxframe/dataframe/datasource/date_range.py +504 -0
  104. maxframe/dataframe/datasource/from_index.py +54 -0
  105. maxframe/dataframe/datasource/from_records.py +107 -0
  106. maxframe/dataframe/datasource/from_tensor.py +419 -0
  107. maxframe/dataframe/datasource/index.py +117 -0
  108. maxframe/dataframe/datasource/read_csv.py +528 -0
  109. maxframe/dataframe/datasource/read_odps_query.py +299 -0
  110. maxframe/dataframe/datasource/read_odps_table.py +253 -0
  111. maxframe/dataframe/datasource/read_parquet.py +421 -0
  112. maxframe/dataframe/datasource/series.py +55 -0
  113. maxframe/dataframe/datasource/tests/__init__.py +13 -0
  114. maxframe/dataframe/datasource/tests/test_datasource.py +401 -0
  115. maxframe/dataframe/datastore/__init__.py +26 -0
  116. maxframe/dataframe/datastore/core.py +19 -0
  117. maxframe/dataframe/datastore/to_csv.py +227 -0
  118. maxframe/dataframe/datastore/to_odps.py +162 -0
  119. maxframe/dataframe/extensions/__init__.py +41 -0
  120. maxframe/dataframe/extensions/accessor.py +50 -0
  121. maxframe/dataframe/extensions/reshuffle.py +83 -0
  122. maxframe/dataframe/extensions/tests/__init__.py +13 -0
  123. maxframe/dataframe/extensions/tests/test_extensions.py +38 -0
  124. maxframe/dataframe/fetch/__init__.py +15 -0
  125. maxframe/dataframe/fetch/core.py +86 -0
  126. maxframe/dataframe/groupby/__init__.py +82 -0
  127. maxframe/dataframe/groupby/aggregation.py +350 -0
  128. maxframe/dataframe/groupby/apply.py +251 -0
  129. maxframe/dataframe/groupby/core.py +179 -0
  130. maxframe/dataframe/groupby/cum.py +124 -0
  131. maxframe/dataframe/groupby/fill.py +141 -0
  132. maxframe/dataframe/groupby/getitem.py +92 -0
  133. maxframe/dataframe/groupby/head.py +105 -0
  134. maxframe/dataframe/groupby/sample.py +214 -0
  135. maxframe/dataframe/groupby/tests/__init__.py +13 -0
  136. maxframe/dataframe/groupby/tests/test_groupby.py +374 -0
  137. maxframe/dataframe/groupby/transform.py +255 -0
  138. maxframe/dataframe/indexing/__init__.py +84 -0
  139. maxframe/dataframe/indexing/add_prefix_suffix.py +110 -0
  140. maxframe/dataframe/indexing/align.py +349 -0
  141. maxframe/dataframe/indexing/at.py +83 -0
  142. maxframe/dataframe/indexing/getitem.py +204 -0
  143. maxframe/dataframe/indexing/iat.py +37 -0
  144. maxframe/dataframe/indexing/iloc.py +566 -0
  145. maxframe/dataframe/indexing/insert.py +86 -0
  146. maxframe/dataframe/indexing/loc.py +411 -0
  147. maxframe/dataframe/indexing/reindex.py +526 -0
  148. maxframe/dataframe/indexing/rename.py +462 -0
  149. maxframe/dataframe/indexing/rename_axis.py +209 -0
  150. maxframe/dataframe/indexing/reset_index.py +402 -0
  151. maxframe/dataframe/indexing/sample.py +221 -0
  152. maxframe/dataframe/indexing/set_axis.py +194 -0
  153. maxframe/dataframe/indexing/set_index.py +61 -0
  154. maxframe/dataframe/indexing/setitem.py +130 -0
  155. maxframe/dataframe/indexing/tests/__init__.py +13 -0
  156. maxframe/dataframe/indexing/tests/test_indexing.py +488 -0
  157. maxframe/dataframe/indexing/where.py +308 -0
  158. maxframe/dataframe/initializer.py +288 -0
  159. maxframe/dataframe/merge/__init__.py +32 -0
  160. maxframe/dataframe/merge/append.py +121 -0
  161. maxframe/dataframe/merge/concat.py +325 -0
  162. maxframe/dataframe/merge/merge.py +593 -0
  163. maxframe/dataframe/merge/tests/__init__.py +13 -0
  164. maxframe/dataframe/merge/tests/test_merge.py +215 -0
  165. maxframe/dataframe/misc/__init__.py +134 -0
  166. maxframe/dataframe/misc/_duplicate.py +46 -0
  167. maxframe/dataframe/misc/accessor.py +276 -0
  168. maxframe/dataframe/misc/apply.py +692 -0
  169. maxframe/dataframe/misc/astype.py +236 -0
  170. maxframe/dataframe/misc/case_when.py +141 -0
  171. maxframe/dataframe/misc/check_monotonic.py +84 -0
  172. maxframe/dataframe/misc/cut.py +383 -0
  173. maxframe/dataframe/misc/datetimes.py +79 -0
  174. maxframe/dataframe/misc/describe.py +108 -0
  175. maxframe/dataframe/misc/diff.py +210 -0
  176. maxframe/dataframe/misc/drop.py +440 -0
  177. maxframe/dataframe/misc/drop_duplicates.py +248 -0
  178. maxframe/dataframe/misc/duplicated.py +292 -0
  179. maxframe/dataframe/misc/eval.py +728 -0
  180. maxframe/dataframe/misc/explode.py +171 -0
  181. maxframe/dataframe/misc/get_dummies.py +208 -0
  182. maxframe/dataframe/misc/isin.py +217 -0
  183. maxframe/dataframe/misc/map.py +236 -0
  184. maxframe/dataframe/misc/melt.py +162 -0
  185. maxframe/dataframe/misc/memory_usage.py +248 -0
  186. maxframe/dataframe/misc/pct_change.py +150 -0
  187. maxframe/dataframe/misc/pivot_table.py +262 -0
  188. maxframe/dataframe/misc/qcut.py +104 -0
  189. maxframe/dataframe/misc/select_dtypes.py +104 -0
  190. maxframe/dataframe/misc/shift.py +256 -0
  191. maxframe/dataframe/misc/stack.py +238 -0
  192. maxframe/dataframe/misc/string_.py +221 -0
  193. maxframe/dataframe/misc/tests/__init__.py +13 -0
  194. maxframe/dataframe/misc/tests/test_misc.py +468 -0
  195. maxframe/dataframe/misc/to_numeric.py +178 -0
  196. maxframe/dataframe/misc/transform.py +361 -0
  197. maxframe/dataframe/misc/transpose.py +136 -0
  198. maxframe/dataframe/misc/value_counts.py +182 -0
  199. maxframe/dataframe/missing/__init__.py +53 -0
  200. maxframe/dataframe/missing/checkna.py +223 -0
  201. maxframe/dataframe/missing/dropna.py +280 -0
  202. maxframe/dataframe/missing/fillna.py +275 -0
  203. maxframe/dataframe/missing/replace.py +439 -0
  204. maxframe/dataframe/missing/tests/__init__.py +13 -0
  205. maxframe/dataframe/missing/tests/test_missing.py +89 -0
  206. maxframe/dataframe/operators.py +273 -0
  207. maxframe/dataframe/plotting/__init__.py +40 -0
  208. maxframe/dataframe/plotting/core.py +78 -0
  209. maxframe/dataframe/plotting/tests/__init__.py +13 -0
  210. maxframe/dataframe/plotting/tests/test_plotting.py +136 -0
  211. maxframe/dataframe/reduction/__init__.py +107 -0
  212. maxframe/dataframe/reduction/aggregation.py +344 -0
  213. maxframe/dataframe/reduction/all.py +78 -0
  214. maxframe/dataframe/reduction/any.py +78 -0
  215. maxframe/dataframe/reduction/core.py +837 -0
  216. maxframe/dataframe/reduction/count.py +59 -0
  217. maxframe/dataframe/reduction/cummax.py +30 -0
  218. maxframe/dataframe/reduction/cummin.py +30 -0
  219. maxframe/dataframe/reduction/cumprod.py +30 -0
  220. maxframe/dataframe/reduction/cumsum.py +30 -0
  221. maxframe/dataframe/reduction/custom_reduction.py +42 -0
  222. maxframe/dataframe/reduction/kurtosis.py +104 -0
  223. maxframe/dataframe/reduction/max.py +65 -0
  224. maxframe/dataframe/reduction/mean.py +61 -0
  225. maxframe/dataframe/reduction/min.py +65 -0
  226. maxframe/dataframe/reduction/nunique.py +141 -0
  227. maxframe/dataframe/reduction/prod.py +76 -0
  228. maxframe/dataframe/reduction/reduction_size.py +36 -0
  229. maxframe/dataframe/reduction/sem.py +69 -0
  230. maxframe/dataframe/reduction/skew.py +89 -0
  231. maxframe/dataframe/reduction/std.py +53 -0
  232. maxframe/dataframe/reduction/str_concat.py +48 -0
  233. maxframe/dataframe/reduction/sum.py +77 -0
  234. maxframe/dataframe/reduction/tests/__init__.py +13 -0
  235. maxframe/dataframe/reduction/tests/test_reduction.py +486 -0
  236. maxframe/dataframe/reduction/unique.py +90 -0
  237. maxframe/dataframe/reduction/var.py +72 -0
  238. maxframe/dataframe/sort/__init__.py +34 -0
  239. maxframe/dataframe/sort/core.py +36 -0
  240. maxframe/dataframe/sort/sort_index.py +153 -0
  241. maxframe/dataframe/sort/sort_values.py +311 -0
  242. maxframe/dataframe/sort/tests/__init__.py +13 -0
  243. maxframe/dataframe/sort/tests/test_sort.py +81 -0
  244. maxframe/dataframe/statistics/__init__.py +33 -0
  245. maxframe/dataframe/statistics/corr.py +280 -0
  246. maxframe/dataframe/statistics/quantile.py +341 -0
  247. maxframe/dataframe/statistics/tests/__init__.py +13 -0
  248. maxframe/dataframe/statistics/tests/test_statistics.py +82 -0
  249. maxframe/dataframe/tests/__init__.py +13 -0
  250. maxframe/dataframe/tests/test_initializer.py +29 -0
  251. maxframe/dataframe/tseries/__init__.py +13 -0
  252. maxframe/dataframe/tseries/tests/__init__.py +13 -0
  253. maxframe/dataframe/tseries/tests/test_tseries.py +30 -0
  254. maxframe/dataframe/tseries/to_datetime.py +297 -0
  255. maxframe/dataframe/ufunc/__init__.py +27 -0
  256. maxframe/dataframe/ufunc/tensor.py +54 -0
  257. maxframe/dataframe/ufunc/ufunc.py +52 -0
  258. maxframe/dataframe/utils.py +1267 -0
  259. maxframe/dataframe/window/__init__.py +29 -0
  260. maxframe/dataframe/window/aggregation.py +96 -0
  261. maxframe/dataframe/window/core.py +69 -0
  262. maxframe/dataframe/window/ewm.py +249 -0
  263. maxframe/dataframe/window/expanding.py +147 -0
  264. maxframe/dataframe/window/rolling.py +376 -0
  265. maxframe/dataframe/window/tests/__init__.py +13 -0
  266. maxframe/dataframe/window/tests/test_ewm.py +70 -0
  267. maxframe/dataframe/window/tests/test_expanding.py +66 -0
  268. maxframe/dataframe/window/tests/test_rolling.py +57 -0
  269. maxframe/env.py +33 -0
  270. maxframe/errors.py +21 -0
  271. maxframe/extension.py +81 -0
  272. maxframe/learn/__init__.py +17 -0
  273. maxframe/learn/contrib/__init__.py +17 -0
  274. maxframe/learn/contrib/pytorch/__init__.py +16 -0
  275. maxframe/learn/contrib/pytorch/run_function.py +110 -0
  276. maxframe/learn/contrib/pytorch/run_script.py +102 -0
  277. maxframe/learn/contrib/pytorch/tests/__init__.py +13 -0
  278. maxframe/learn/contrib/pytorch/tests/test_pytorch.py +42 -0
  279. maxframe/learn/contrib/utils.py +52 -0
  280. maxframe/learn/contrib/xgboost/__init__.py +26 -0
  281. maxframe/learn/contrib/xgboost/classifier.py +86 -0
  282. maxframe/learn/contrib/xgboost/core.py +156 -0
  283. maxframe/learn/contrib/xgboost/dmatrix.py +150 -0
  284. maxframe/learn/contrib/xgboost/predict.py +138 -0
  285. maxframe/learn/contrib/xgboost/regressor.py +78 -0
  286. maxframe/learn/contrib/xgboost/tests/__init__.py +13 -0
  287. maxframe/learn/contrib/xgboost/tests/test_core.py +43 -0
  288. maxframe/learn/contrib/xgboost/train.py +121 -0
  289. maxframe/learn/utils/__init__.py +15 -0
  290. maxframe/learn/utils/core.py +29 -0
  291. maxframe/lib/__init__.py +15 -0
  292. maxframe/lib/aio/__init__.py +27 -0
  293. maxframe/lib/aio/_runners.py +162 -0
  294. maxframe/lib/aio/_threads.py +35 -0
  295. maxframe/lib/aio/base.py +82 -0
  296. maxframe/lib/aio/file.py +85 -0
  297. maxframe/lib/aio/isolation.py +100 -0
  298. maxframe/lib/aio/lru.py +242 -0
  299. maxframe/lib/aio/parallelism.py +37 -0
  300. maxframe/lib/aio/tests/__init__.py +13 -0
  301. maxframe/lib/aio/tests/test_aio_file.py +55 -0
  302. maxframe/lib/compression.py +55 -0
  303. maxframe/lib/cython/__init__.py +13 -0
  304. maxframe/lib/cython/libcpp.pxd +30 -0
  305. maxframe/lib/filesystem/__init__.py +21 -0
  306. maxframe/lib/filesystem/_glob.py +173 -0
  307. maxframe/lib/filesystem/_oss_lib/__init__.py +13 -0
  308. maxframe/lib/filesystem/_oss_lib/common.py +198 -0
  309. maxframe/lib/filesystem/_oss_lib/glob.py +147 -0
  310. maxframe/lib/filesystem/_oss_lib/handle.py +156 -0
  311. maxframe/lib/filesystem/arrow.py +236 -0
  312. maxframe/lib/filesystem/base.py +263 -0
  313. maxframe/lib/filesystem/core.py +95 -0
  314. maxframe/lib/filesystem/fsmap.py +164 -0
  315. maxframe/lib/filesystem/hdfs.py +31 -0
  316. maxframe/lib/filesystem/local.py +112 -0
  317. maxframe/lib/filesystem/oss.py +157 -0
  318. maxframe/lib/filesystem/tests/__init__.py +13 -0
  319. maxframe/lib/filesystem/tests/test_filesystem.py +223 -0
  320. maxframe/lib/filesystem/tests/test_oss.py +182 -0
  321. maxframe/lib/functools_compat.py +81 -0
  322. maxframe/lib/mmh3.cpython-310-darwin.so +0 -0
  323. maxframe/lib/mmh3_src/MurmurHash3.cpp +339 -0
  324. maxframe/lib/mmh3_src/MurmurHash3.h +43 -0
  325. maxframe/lib/mmh3_src/mmh3module.cpp +387 -0
  326. maxframe/lib/sparse/__init__.py +861 -0
  327. maxframe/lib/sparse/array.py +1604 -0
  328. maxframe/lib/sparse/core.py +92 -0
  329. maxframe/lib/sparse/matrix.py +241 -0
  330. maxframe/lib/sparse/tests/__init__.py +15 -0
  331. maxframe/lib/sparse/tests/test_sparse.py +476 -0
  332. maxframe/lib/sparse/vector.py +150 -0
  333. maxframe/lib/tblib/LICENSE +20 -0
  334. maxframe/lib/tblib/__init__.py +327 -0
  335. maxframe/lib/tblib/cpython.py +83 -0
  336. maxframe/lib/tblib/decorators.py +44 -0
  337. maxframe/lib/tblib/pickling_support.py +90 -0
  338. maxframe/lib/tests/__init__.py +13 -0
  339. maxframe/lib/tests/test_wrapped_pickle.py +51 -0
  340. maxframe/lib/version.py +620 -0
  341. maxframe/lib/wrapped_pickle.py +139 -0
  342. maxframe/mixin.py +100 -0
  343. maxframe/odpsio/__init__.py +21 -0
  344. maxframe/odpsio/arrow.py +91 -0
  345. maxframe/odpsio/schema.py +364 -0
  346. maxframe/odpsio/tableio.py +322 -0
  347. maxframe/odpsio/tests/__init__.py +13 -0
  348. maxframe/odpsio/tests/test_arrow.py +88 -0
  349. maxframe/odpsio/tests/test_schema.py +297 -0
  350. maxframe/odpsio/tests/test_tableio.py +136 -0
  351. maxframe/odpsio/tests/test_volumeio.py +90 -0
  352. maxframe/odpsio/volumeio.py +95 -0
  353. maxframe/opcodes.py +590 -0
  354. maxframe/protocol.py +415 -0
  355. maxframe/remote/__init__.py +18 -0
  356. maxframe/remote/core.py +210 -0
  357. maxframe/remote/run_script.py +121 -0
  358. maxframe/serialization/__init__.py +26 -0
  359. maxframe/serialization/arrow.py +95 -0
  360. maxframe/serialization/core.cpython-310-darwin.so +0 -0
  361. maxframe/serialization/core.pxd +44 -0
  362. maxframe/serialization/core.pyi +61 -0
  363. maxframe/serialization/core.pyx +1094 -0
  364. maxframe/serialization/exception.py +86 -0
  365. maxframe/serialization/maxframe_objects.py +39 -0
  366. maxframe/serialization/numpy.py +91 -0
  367. maxframe/serialization/pandas.py +202 -0
  368. maxframe/serialization/scipy.py +71 -0
  369. maxframe/serialization/serializables/__init__.py +55 -0
  370. maxframe/serialization/serializables/core.py +262 -0
  371. maxframe/serialization/serializables/field.py +624 -0
  372. maxframe/serialization/serializables/field_type.py +589 -0
  373. maxframe/serialization/serializables/tests/__init__.py +13 -0
  374. maxframe/serialization/serializables/tests/test_field_type.py +121 -0
  375. maxframe/serialization/serializables/tests/test_serializable.py +250 -0
  376. maxframe/serialization/tests/__init__.py +13 -0
  377. maxframe/serialization/tests/test_serial.py +412 -0
  378. maxframe/session.py +1310 -0
  379. maxframe/tensor/__init__.py +183 -0
  380. maxframe/tensor/arithmetic/__init__.py +315 -0
  381. maxframe/tensor/arithmetic/abs.py +68 -0
  382. maxframe/tensor/arithmetic/absolute.py +68 -0
  383. maxframe/tensor/arithmetic/add.py +82 -0
  384. maxframe/tensor/arithmetic/angle.py +72 -0
  385. maxframe/tensor/arithmetic/arccos.py +104 -0
  386. maxframe/tensor/arithmetic/arccosh.py +91 -0
  387. maxframe/tensor/arithmetic/arcsin.py +94 -0
  388. maxframe/tensor/arithmetic/arcsinh.py +86 -0
  389. maxframe/tensor/arithmetic/arctan.py +106 -0
  390. maxframe/tensor/arithmetic/arctan2.py +128 -0
  391. maxframe/tensor/arithmetic/arctanh.py +86 -0
  392. maxframe/tensor/arithmetic/around.py +114 -0
  393. maxframe/tensor/arithmetic/bitand.py +95 -0
  394. maxframe/tensor/arithmetic/bitor.py +102 -0
  395. maxframe/tensor/arithmetic/bitxor.py +95 -0
  396. maxframe/tensor/arithmetic/cbrt.py +66 -0
  397. maxframe/tensor/arithmetic/ceil.py +71 -0
  398. maxframe/tensor/arithmetic/clip.py +165 -0
  399. maxframe/tensor/arithmetic/conj.py +74 -0
  400. maxframe/tensor/arithmetic/copysign.py +78 -0
  401. maxframe/tensor/arithmetic/core.py +544 -0
  402. maxframe/tensor/arithmetic/cos.py +85 -0
  403. maxframe/tensor/arithmetic/cosh.py +72 -0
  404. maxframe/tensor/arithmetic/deg2rad.py +72 -0
  405. maxframe/tensor/arithmetic/degrees.py +77 -0
  406. maxframe/tensor/arithmetic/divide.py +114 -0
  407. maxframe/tensor/arithmetic/equal.py +76 -0
  408. maxframe/tensor/arithmetic/exp.py +106 -0
  409. maxframe/tensor/arithmetic/exp2.py +67 -0
  410. maxframe/tensor/arithmetic/expm1.py +79 -0
  411. maxframe/tensor/arithmetic/fabs.py +74 -0
  412. maxframe/tensor/arithmetic/fix.py +69 -0
  413. maxframe/tensor/arithmetic/float_power.py +103 -0
  414. maxframe/tensor/arithmetic/floor.py +77 -0
  415. maxframe/tensor/arithmetic/floordiv.py +94 -0
  416. maxframe/tensor/arithmetic/fmax.py +105 -0
  417. maxframe/tensor/arithmetic/fmin.py +106 -0
  418. maxframe/tensor/arithmetic/fmod.py +99 -0
  419. maxframe/tensor/arithmetic/frexp.py +92 -0
  420. maxframe/tensor/arithmetic/greater.py +77 -0
  421. maxframe/tensor/arithmetic/greater_equal.py +69 -0
  422. maxframe/tensor/arithmetic/hypot.py +77 -0
  423. maxframe/tensor/arithmetic/i0.py +89 -0
  424. maxframe/tensor/arithmetic/imag.py +67 -0
  425. maxframe/tensor/arithmetic/invert.py +110 -0
  426. maxframe/tensor/arithmetic/isclose.py +115 -0
  427. maxframe/tensor/arithmetic/iscomplex.py +64 -0
  428. maxframe/tensor/arithmetic/isfinite.py +106 -0
  429. maxframe/tensor/arithmetic/isinf.py +103 -0
  430. maxframe/tensor/arithmetic/isnan.py +82 -0
  431. maxframe/tensor/arithmetic/isreal.py +63 -0
  432. maxframe/tensor/arithmetic/ldexp.py +99 -0
  433. maxframe/tensor/arithmetic/less.py +69 -0
  434. maxframe/tensor/arithmetic/less_equal.py +69 -0
  435. maxframe/tensor/arithmetic/log.py +92 -0
  436. maxframe/tensor/arithmetic/log10.py +85 -0
  437. maxframe/tensor/arithmetic/log1p.py +95 -0
  438. maxframe/tensor/arithmetic/log2.py +85 -0
  439. maxframe/tensor/arithmetic/logaddexp.py +80 -0
  440. maxframe/tensor/arithmetic/logaddexp2.py +78 -0
  441. maxframe/tensor/arithmetic/logical_and.py +81 -0
  442. maxframe/tensor/arithmetic/logical_not.py +74 -0
  443. maxframe/tensor/arithmetic/logical_or.py +82 -0
  444. maxframe/tensor/arithmetic/logical_xor.py +88 -0
  445. maxframe/tensor/arithmetic/lshift.py +82 -0
  446. maxframe/tensor/arithmetic/maximum.py +108 -0
  447. maxframe/tensor/arithmetic/minimum.py +108 -0
  448. maxframe/tensor/arithmetic/mod.py +104 -0
  449. maxframe/tensor/arithmetic/modf.py +83 -0
  450. maxframe/tensor/arithmetic/multiply.py +81 -0
  451. maxframe/tensor/arithmetic/nan_to_num.py +99 -0
  452. maxframe/tensor/arithmetic/negative.py +65 -0
  453. maxframe/tensor/arithmetic/nextafter.py +68 -0
  454. maxframe/tensor/arithmetic/not_equal.py +72 -0
  455. maxframe/tensor/arithmetic/positive.py +47 -0
  456. maxframe/tensor/arithmetic/power.py +106 -0
  457. maxframe/tensor/arithmetic/rad2deg.py +71 -0
  458. maxframe/tensor/arithmetic/radians.py +77 -0
  459. maxframe/tensor/arithmetic/real.py +70 -0
  460. maxframe/tensor/arithmetic/reciprocal.py +76 -0
  461. maxframe/tensor/arithmetic/rint.py +68 -0
  462. maxframe/tensor/arithmetic/rshift.py +81 -0
  463. maxframe/tensor/arithmetic/setimag.py +29 -0
  464. maxframe/tensor/arithmetic/setreal.py +29 -0
  465. maxframe/tensor/arithmetic/sign.py +81 -0
  466. maxframe/tensor/arithmetic/signbit.py +65 -0
  467. maxframe/tensor/arithmetic/sin.py +98 -0
  468. maxframe/tensor/arithmetic/sinc.py +102 -0
  469. maxframe/tensor/arithmetic/sinh.py +93 -0
  470. maxframe/tensor/arithmetic/spacing.py +72 -0
  471. maxframe/tensor/arithmetic/sqrt.py +81 -0
  472. maxframe/tensor/arithmetic/square.py +69 -0
  473. maxframe/tensor/arithmetic/subtract.py +81 -0
  474. maxframe/tensor/arithmetic/tan.py +88 -0
  475. maxframe/tensor/arithmetic/tanh.py +92 -0
  476. maxframe/tensor/arithmetic/tests/__init__.py +15 -0
  477. maxframe/tensor/arithmetic/tests/test_arithmetic.py +414 -0
  478. maxframe/tensor/arithmetic/truediv.py +104 -0
  479. maxframe/tensor/arithmetic/trunc.py +72 -0
  480. maxframe/tensor/arithmetic/utils.py +65 -0
  481. maxframe/tensor/array_utils.py +186 -0
  482. maxframe/tensor/base/__init__.py +34 -0
  483. maxframe/tensor/base/astype.py +119 -0
  484. maxframe/tensor/base/atleast_1d.py +74 -0
  485. maxframe/tensor/base/broadcast_to.py +89 -0
  486. maxframe/tensor/base/ravel.py +92 -0
  487. maxframe/tensor/base/tests/__init__.py +13 -0
  488. maxframe/tensor/base/tests/test_base.py +114 -0
  489. maxframe/tensor/base/transpose.py +125 -0
  490. maxframe/tensor/base/unique.py +205 -0
  491. maxframe/tensor/base/where.py +127 -0
  492. maxframe/tensor/core.py +724 -0
  493. maxframe/tensor/datasource/__init__.py +32 -0
  494. maxframe/tensor/datasource/arange.py +156 -0
  495. maxframe/tensor/datasource/array.py +415 -0
  496. maxframe/tensor/datasource/core.py +109 -0
  497. maxframe/tensor/datasource/empty.py +169 -0
  498. maxframe/tensor/datasource/from_dataframe.py +70 -0
  499. maxframe/tensor/datasource/from_dense.py +54 -0
  500. maxframe/tensor/datasource/from_sparse.py +47 -0
  501. maxframe/tensor/datasource/full.py +186 -0
  502. maxframe/tensor/datasource/ones.py +173 -0
  503. maxframe/tensor/datasource/scalar.py +40 -0
  504. maxframe/tensor/datasource/tests/__init__.py +13 -0
  505. maxframe/tensor/datasource/tests/test_datasource.py +278 -0
  506. maxframe/tensor/datasource/zeros.py +188 -0
  507. maxframe/tensor/fetch/__init__.py +15 -0
  508. maxframe/tensor/fetch/core.py +54 -0
  509. maxframe/tensor/indexing/__init__.py +47 -0
  510. maxframe/tensor/indexing/choose.py +196 -0
  511. maxframe/tensor/indexing/compress.py +124 -0
  512. maxframe/tensor/indexing/core.py +190 -0
  513. maxframe/tensor/indexing/extract.py +71 -0
  514. maxframe/tensor/indexing/fill_diagonal.py +183 -0
  515. maxframe/tensor/indexing/flatnonzero.py +60 -0
  516. maxframe/tensor/indexing/getitem.py +175 -0
  517. maxframe/tensor/indexing/nonzero.py +120 -0
  518. maxframe/tensor/indexing/setitem.py +132 -0
  519. maxframe/tensor/indexing/slice.py +29 -0
  520. maxframe/tensor/indexing/take.py +130 -0
  521. maxframe/tensor/indexing/tests/__init__.py +15 -0
  522. maxframe/tensor/indexing/tests/test_indexing.py +234 -0
  523. maxframe/tensor/indexing/unravel_index.py +103 -0
  524. maxframe/tensor/merge/__init__.py +15 -0
  525. maxframe/tensor/merge/stack.py +132 -0
  526. maxframe/tensor/merge/tests/__init__.py +13 -0
  527. maxframe/tensor/merge/tests/test_merge.py +52 -0
  528. maxframe/tensor/operators.py +123 -0
  529. maxframe/tensor/random/__init__.py +168 -0
  530. maxframe/tensor/random/beta.py +87 -0
  531. maxframe/tensor/random/binomial.py +137 -0
  532. maxframe/tensor/random/bytes.py +39 -0
  533. maxframe/tensor/random/chisquare.py +110 -0
  534. maxframe/tensor/random/choice.py +186 -0
  535. maxframe/tensor/random/core.py +234 -0
  536. maxframe/tensor/random/dirichlet.py +123 -0
  537. maxframe/tensor/random/exponential.py +94 -0
  538. maxframe/tensor/random/f.py +135 -0
  539. maxframe/tensor/random/gamma.py +128 -0
  540. maxframe/tensor/random/geometric.py +93 -0
  541. maxframe/tensor/random/gumbel.py +167 -0
  542. maxframe/tensor/random/hypergeometric.py +148 -0
  543. maxframe/tensor/random/laplace.py +133 -0
  544. maxframe/tensor/random/logistic.py +129 -0
  545. maxframe/tensor/random/lognormal.py +159 -0
  546. maxframe/tensor/random/logseries.py +122 -0
  547. maxframe/tensor/random/multinomial.py +133 -0
  548. maxframe/tensor/random/multivariate_normal.py +192 -0
  549. maxframe/tensor/random/negative_binomial.py +125 -0
  550. maxframe/tensor/random/noncentral_chisquare.py +132 -0
  551. maxframe/tensor/random/noncentral_f.py +126 -0
  552. maxframe/tensor/random/normal.py +143 -0
  553. maxframe/tensor/random/pareto.py +140 -0
  554. maxframe/tensor/random/permutation.py +104 -0
  555. maxframe/tensor/random/poisson.py +111 -0
  556. maxframe/tensor/random/power.py +142 -0
  557. maxframe/tensor/random/rand.py +82 -0
  558. maxframe/tensor/random/randint.py +121 -0
  559. maxframe/tensor/random/randn.py +96 -0
  560. maxframe/tensor/random/random_integers.py +123 -0
  561. maxframe/tensor/random/random_sample.py +86 -0
  562. maxframe/tensor/random/rayleigh.py +110 -0
  563. maxframe/tensor/random/shuffle.py +61 -0
  564. maxframe/tensor/random/standard_cauchy.py +105 -0
  565. maxframe/tensor/random/standard_exponential.py +72 -0
  566. maxframe/tensor/random/standard_gamma.py +120 -0
  567. maxframe/tensor/random/standard_normal.py +74 -0
  568. maxframe/tensor/random/standard_t.py +135 -0
  569. maxframe/tensor/random/tests/__init__.py +15 -0
  570. maxframe/tensor/random/tests/test_random.py +167 -0
  571. maxframe/tensor/random/triangular.py +119 -0
  572. maxframe/tensor/random/uniform.py +131 -0
  573. maxframe/tensor/random/vonmises.py +131 -0
  574. maxframe/tensor/random/wald.py +114 -0
  575. maxframe/tensor/random/weibull.py +140 -0
  576. maxframe/tensor/random/zipf.py +122 -0
  577. maxframe/tensor/rechunk/__init__.py +26 -0
  578. maxframe/tensor/rechunk/rechunk.py +43 -0
  579. maxframe/tensor/reduction/__init__.py +66 -0
  580. maxframe/tensor/reduction/all.py +103 -0
  581. maxframe/tensor/reduction/allclose.py +88 -0
  582. maxframe/tensor/reduction/any.py +105 -0
  583. maxframe/tensor/reduction/argmax.py +103 -0
  584. maxframe/tensor/reduction/argmin.py +103 -0
  585. maxframe/tensor/reduction/array_equal.py +64 -0
  586. maxframe/tensor/reduction/core.py +168 -0
  587. maxframe/tensor/reduction/count_nonzero.py +81 -0
  588. maxframe/tensor/reduction/cumprod.py +97 -0
  589. maxframe/tensor/reduction/cumsum.py +101 -0
  590. maxframe/tensor/reduction/max.py +120 -0
  591. maxframe/tensor/reduction/mean.py +123 -0
  592. maxframe/tensor/reduction/min.py +120 -0
  593. maxframe/tensor/reduction/nanargmax.py +82 -0
  594. maxframe/tensor/reduction/nanargmin.py +76 -0
  595. maxframe/tensor/reduction/nancumprod.py +91 -0
  596. maxframe/tensor/reduction/nancumsum.py +94 -0
  597. maxframe/tensor/reduction/nanmax.py +111 -0
  598. maxframe/tensor/reduction/nanmean.py +106 -0
  599. maxframe/tensor/reduction/nanmin.py +111 -0
  600. maxframe/tensor/reduction/nanprod.py +94 -0
  601. maxframe/tensor/reduction/nanstd.py +126 -0
  602. maxframe/tensor/reduction/nansum.py +115 -0
  603. maxframe/tensor/reduction/nanvar.py +149 -0
  604. maxframe/tensor/reduction/prod.py +130 -0
  605. maxframe/tensor/reduction/std.py +134 -0
  606. maxframe/tensor/reduction/sum.py +125 -0
  607. maxframe/tensor/reduction/tests/__init__.py +13 -0
  608. maxframe/tensor/reduction/tests/test_reduction.py +181 -0
  609. maxframe/tensor/reduction/var.py +176 -0
  610. maxframe/tensor/reshape/__init__.py +17 -0
  611. maxframe/tensor/reshape/reshape.py +188 -0
  612. maxframe/tensor/reshape/tests/__init__.py +15 -0
  613. maxframe/tensor/reshape/tests/test_reshape.py +37 -0
  614. maxframe/tensor/statistics/__init__.py +13 -0
  615. maxframe/tensor/statistics/percentile.py +175 -0
  616. maxframe/tensor/statistics/quantile.py +288 -0
  617. maxframe/tensor/ufunc/__init__.py +26 -0
  618. maxframe/tensor/ufunc/ufunc.py +200 -0
  619. maxframe/tensor/utils.py +718 -0
  620. maxframe/tests/__init__.py +13 -0
  621. maxframe/tests/test_codegen.py +69 -0
  622. maxframe/tests/test_protocol.py +144 -0
  623. maxframe/tests/test_utils.py +376 -0
  624. maxframe/tests/utils.py +164 -0
  625. maxframe/typing_.py +37 -0
  626. maxframe/udf.py +134 -0
  627. maxframe/utils.py +1114 -0
  628. maxframe-0.1.0b5.dist-info/METADATA +104 -0
  629. maxframe-0.1.0b5.dist-info/RECORD +647 -0
  630. maxframe-0.1.0b5.dist-info/WHEEL +5 -0
  631. maxframe-0.1.0b5.dist-info/top_level.txt +3 -0
  632. maxframe_client/__init__.py +17 -0
  633. maxframe_client/clients/__init__.py +13 -0
  634. maxframe_client/clients/framedriver.py +118 -0
  635. maxframe_client/clients/spe.py +104 -0
  636. maxframe_client/conftest.py +15 -0
  637. maxframe_client/fetcher.py +264 -0
  638. maxframe_client/session/__init__.py +22 -0
  639. maxframe_client/session/consts.py +36 -0
  640. maxframe_client/session/graph.py +119 -0
  641. maxframe_client/session/odps.py +482 -0
  642. maxframe_client/session/task.py +280 -0
  643. maxframe_client/session/tests/__init__.py +13 -0
  644. maxframe_client/session/tests/test_task.py +85 -0
  645. maxframe_client/tests/__init__.py +13 -0
  646. maxframe_client/tests/test_fetcher.py +89 -0
  647. maxframe_client/tests/test_session.py +255 -0
@@ -0,0 +1,115 @@
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 ..datasource import tensor as astensor
21
+ from .core import TensorReduction, TensorReductionMixin
22
+
23
+
24
+ class TensorNanSum(TensorReduction, TensorReductionMixin):
25
+ _op_type_ = opcodes.NANSUM
26
+ _func_name = "nansum"
27
+
28
+
29
+ def nansum(a, axis=None, dtype=None, out=None, keepdims=None):
30
+ """
31
+ Return the sum of array elements over a given axis treating Not a
32
+ Numbers (NaNs) as zero.
33
+
34
+ Zero is returned for slices that are all-NaN or
35
+ empty.
36
+
37
+ Parameters
38
+ ----------
39
+ a : array_like
40
+ Tensor containing numbers whose sum is desired. If `a` is not an
41
+ tensor, a conversion is attempted.
42
+ axis : int, optional
43
+ Axis along which the sum is computed. The default is to compute the
44
+ sum of the flattened array.
45
+ dtype : data-type, optional
46
+ The type of the returned tensor and of the accumulator in which the
47
+ elements are summed. By default, the dtype of `a` is used. An
48
+ exception is when `a` has an integer type with less precision than
49
+ the platform (u)intp. In that case, the default will be either
50
+ (u)int32 or (u)int64 depending on whether the platform is 32 or 64
51
+ bits. For inexact inputs, dtype must be inexact.
52
+ out : Tensor, optional
53
+ Alternate output tensor in which to place the result. The default
54
+ is ``None``. If provided, it must have the same shape as the
55
+ expected output, but the type will be cast if necessary. See
56
+ `doc.ufuncs` for details. The casting of NaN to integer can yield
57
+ unexpected results.
58
+ keepdims : bool, optional
59
+ If this is set to True, the axes which are reduced are left
60
+ in the result as dimensions with size one. With this option,
61
+ the result will broadcast correctly against the original `a`.
62
+
63
+
64
+ If the value is anything but the default, then
65
+ `keepdims` will be passed through to the `mean` or `sum` methods
66
+ of sub-classes of `Tensor`. If the sub-classes methods
67
+ does not implement `keepdims` any exceptions will be raised.
68
+
69
+ Returns
70
+ -------
71
+ nansum : Tensor.
72
+ A new tensor holding the result is returned unless `out` is
73
+ specified, in which it is returned. The result has the same
74
+ size as `a`, and the same shape as `a` if `axis` is not None
75
+ or `a` is a 1-d array.
76
+
77
+ See Also
78
+ --------
79
+ mt.sum : Sum across tensor propagating NaNs.
80
+ isnan : Show which elements are NaN.
81
+ isfinite: Show which elements are not NaN or +/-inf.
82
+
83
+ Notes
84
+ -----
85
+ If both positive and negative infinity are present, the sum will be Not
86
+ A Number (NaN).
87
+
88
+ Examples
89
+ --------
90
+ >>> import maxframe.tensor as mt
91
+
92
+ >>> mt.nansum(1).execute()
93
+ 1
94
+ >>> mt.nansum([1]).execute()
95
+ 1
96
+ >>> mt.nansum([1, mt.nan]).execute()
97
+ 1.0
98
+ >>> a = mt.array([[1, 1], [1, mt.nan]])
99
+ >>> mt.nansum(a).execute()
100
+ 3.0
101
+ >>> mt.nansum(a, axis=0).execute()
102
+ array([ 2., 1.])
103
+ >>> mt.nansum([1, mt.nan, mt.inf]).execute()
104
+ inf
105
+ >>> mt.nansum([1, mt.nan, mt.NINF]).execute()
106
+ -inf
107
+ >>> mt.nansum([1, mt.nan, mt.inf, -mt.inf]).execute() # both +/- infinity present
108
+ nan
109
+
110
+ """
111
+ a = astensor(a)
112
+ if dtype is None:
113
+ dtype = np.nansum(np.empty((1,), dtype=a.dtype)).dtype
114
+ op = TensorNanSum(axis=axis, dtype=dtype, keepdims=keepdims)
115
+ return op(a, out=out)
@@ -0,0 +1,149 @@
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 Int32Field
21
+ from ..datasource import tensor as astensor
22
+ from .core import TensorReduction, TensorReductionMixin
23
+
24
+
25
+ class TensorNanMoment(TensorReduction, TensorReductionMixin):
26
+ _op_type_ = opcodes.NANMOMENT
27
+
28
+ moment = Int32Field("moment", default=2)
29
+ ddof = Int32Field("ddof", default=None)
30
+
31
+ def __init__(self, moment=None, **kw):
32
+ if moment is not None:
33
+ kw["moment"] = moment
34
+ super().__init__(**kw)
35
+
36
+
37
+ class TensorNanVar(TensorReduction, TensorReductionMixin):
38
+ _op_type_ = opcodes.NANVAR
39
+
40
+ ddof = Int32Field("ddof", default=0)
41
+
42
+ def __new__(cls, *args, **kwargs):
43
+ if kwargs.get("stage") is not None:
44
+ return TensorNanMoment(*args, **kwargs)
45
+ return super().__new__(cls)
46
+
47
+ def __init__(self, dtype=None, **kw):
48
+ super().__init__(dtype=dtype, **kw)
49
+
50
+ def _get_op_kw(self):
51
+ kw = dict()
52
+ kw["ddof"] = self.ddof
53
+ return kw
54
+
55
+
56
+ def nanvar(a, axis=None, dtype=None, out=None, ddof=0, keepdims=None):
57
+ """
58
+ Compute the variance along the specified axis, while ignoring NaNs.
59
+
60
+ Returns the variance of the tensor elements, a measure of the spread of
61
+ a distribution. The variance is computed for the flattened tensor by
62
+ default, otherwise over the specified axis.
63
+
64
+ For all-NaN slices or slices with zero degrees of freedom, NaN is
65
+ returned and a `RuntimeWarning` is raised.
66
+
67
+ Parameters
68
+ ----------
69
+ a : array_like
70
+ Tensor containing numbers whose variance is desired. If `a` is not a
71
+ tensor, a conversion is attempted.
72
+ axis : int, optional
73
+ Axis along which the variance is computed. The default is to compute
74
+ the variance of the flattened array.
75
+ dtype : data-type, optional
76
+ Type to use in computing the variance. For tensors of integer type
77
+ the default is `float32`; for tensors of float types it is the same as
78
+ the tensor type.
79
+ out : Tensor, optional
80
+ Alternate output tensor in which to place the result. It must have
81
+ the same shape as the expected output, but the type is cast if
82
+ necessary.
83
+ ddof : int, optional
84
+ "Delta Degrees of Freedom": the divisor used in the calculation is
85
+ ``N - ddof``, where ``N`` represents the number of non-NaN
86
+ elements. By default `ddof` is zero.
87
+ keepdims : bool, optional
88
+ If this is set to True, the axes which are reduced are left
89
+ in the result as dimensions with size one. With this option,
90
+ the result will broadcast correctly against the original `a`.
91
+
92
+
93
+ Returns
94
+ -------
95
+ variance : Tensor, see dtype parameter above
96
+ If `out` is None, return a new tensor containing the variance,
97
+ otherwise return a reference to the output tensor. If ddof is >= the
98
+ number of non-NaN elements in a slice or the slice contains only
99
+ NaNs, then the result for that slice is NaN.
100
+
101
+ See Also
102
+ --------
103
+ std : Standard deviation
104
+ mean : Average
105
+ var : Variance while not ignoring NaNs
106
+ nanstd, nanmean
107
+
108
+ Notes
109
+ -----
110
+ The variance is the average of the squared deviations from the mean,
111
+ i.e., ``var = mean(abs(x - x.mean())**2)``.
112
+
113
+ The mean is normally calculated as ``x.sum() / N``, where ``N = len(x)``.
114
+ If, however, `ddof` is specified, the divisor ``N - ddof`` is used
115
+ instead. In standard statistical practice, ``ddof=1`` provides an
116
+ unbiased estimator of the variance of a hypothetical infinite
117
+ population. ``ddof=0`` provides a maximum likelihood estimate of the
118
+ variance for normally distributed variables.
119
+
120
+ Note that for complex numbers, the absolute value is taken before
121
+ squaring, so that the result is always real and nonnegative.
122
+
123
+ For floating-point input, the variance is computed using the same
124
+ precision the input has. Depending on the input data, this can cause
125
+ the results to be inaccurate, especially for `float32` (see example
126
+ below). Specifying a higher-accuracy accumulator using the ``dtype``
127
+ keyword can alleviate this issue.
128
+
129
+ For this function to work on sub-classes of Tensor, they must define
130
+ `sum` with the kwarg `keepdims`
131
+
132
+ Examples
133
+ --------
134
+ >>> import maxframe.tensor as mt
135
+
136
+ >>> a = mt.array([[1, mt.nan], [3, 4]])
137
+ >>> mt.nanvar(a).execute()
138
+ 1.5555555555555554
139
+ >>> mt.nanvar(a, axis=0).execute()
140
+ array([ 1., 0.])
141
+ >>> mt.nanvar(a, axis=1).execute()
142
+ array([ 0., 0.25])
143
+
144
+ """
145
+ a = astensor(a)
146
+ if dtype is None:
147
+ dtype = np.nanvar(np.ones((1,), dtype=a.dtype)).dtype
148
+ op = TensorNanVar(axis=axis, dtype=dtype, keepdims=keepdims, ddof=ddof)
149
+ return op(a, out=out)
@@ -0,0 +1,130 @@
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 ..datasource import tensor as astensor
21
+ from .core import TensorReduction, TensorReductionMixin
22
+
23
+
24
+ class TensorProd(TensorReduction, TensorReductionMixin):
25
+ _op_type_ = opcodes.PROD
26
+ _func_name = "prod"
27
+
28
+
29
+ def prod(a, axis=None, dtype=None, out=None, keepdims=None):
30
+ """
31
+ Return the product of tensor elements over a given axis.
32
+
33
+ Parameters
34
+ ----------
35
+ a : array_like
36
+ Input data.
37
+ axis : None or int or tuple of ints, optional
38
+ Axis or axes along which a product is performed. The default,
39
+ axis=None, will calculate the product of all the elements in the
40
+ input tensor. If axis is negative it counts from the last to the
41
+ first axis.
42
+
43
+ If axis is a tuple of ints, a product is performed on all of the
44
+ axes specified in the tuple instead of a single axis or all the
45
+ axes as before.
46
+ dtype : dtype, optional
47
+ The type of the returned tensor, as well as of the accumulator in
48
+ which the elements are multiplied. The dtype of `a` is used by
49
+ default unless `a` has an integer dtype of less precision than the
50
+ default platform integer. In that case, if `a` is signed then the
51
+ platform integer is used while if `a` is unsigned then an unsigned
52
+ integer of the same precision as the platform integer is used.
53
+ out : Tensor, optional
54
+ Alternative output tensor in which to place the result. It must have
55
+ the same shape as the expected output, but the type of the output
56
+ values will be cast if necessary.
57
+ keepdims : bool, optional
58
+ If this is set to True, the axes which are reduced are left in the
59
+ result as dimensions with size one. With this option, the result
60
+ will broadcast correctly against the input array.
61
+
62
+ If the default value is passed, then `keepdims` will not be
63
+ passed through to the `prod` method of sub-classes of
64
+ `Tensor`, however any non-default value will be. If the
65
+ sub-classes `sum` method does not implement `keepdims` any
66
+ exceptions will be raised.
67
+
68
+ Returns
69
+ -------
70
+ product_along_axis : Tensor, see `dtype` parameter above.
71
+ An tensor shaped as `a` but with the specified axis removed.
72
+ Returns a reference to `out` if specified.
73
+
74
+ See Also
75
+ --------
76
+ Tensor.prod : equivalent method
77
+
78
+ Notes
79
+ -----
80
+ Arithmetic is modular when using integer types, and no error is
81
+ raised on overflow. That means that, on a 32-bit platform:
82
+
83
+ >>> import maxframe.tensor as mt
84
+
85
+ >>> x = mt.array([536870910, 536870910, 536870910, 536870910])
86
+ >>> mt.prod(x).execute() # random
87
+ 16
88
+
89
+ The product of an empty array is the neutral element 1:
90
+
91
+ >>> mt.prod([]).execute()
92
+ 1.0
93
+
94
+ Examples
95
+ --------
96
+ By default, calculate the product of all elements:
97
+
98
+ >>> mt.prod([1.,2.]).execute()
99
+ 2.0
100
+
101
+ Even when the input array is two-dimensional:
102
+
103
+ >>> mt.prod([[1.,2.],[3.,4.]]).execute()
104
+ 24.0
105
+
106
+ But we can also specify the axis over which to multiply:
107
+
108
+ >>> mt.prod([[1.,2.],[3.,4.]], axis=1).execute()
109
+ array([ 2., 12.])
110
+
111
+ If the type of `x` is unsigned, then the output type is
112
+ the unsigned platform integer:
113
+
114
+ >>> x = mt.array([1, 2, 3], dtype=mt.uint8)
115
+ >>> mt.prod(x).dtype == mt.uint
116
+ True
117
+
118
+ If `x` is of a signed integer type, then the output type
119
+ is the default platform integer:
120
+
121
+ >>> x = mt.array([1, 2, 3], dtype=mt.int8)
122
+ >>> mt.prod(x).dtype == int
123
+ True
124
+
125
+ """
126
+ a = astensor(a)
127
+ if dtype is None:
128
+ dtype = np.empty((1,), dtype=a.dtype).prod().dtype
129
+ op = TensorProd(axis=axis, dtype=dtype, keepdims=keepdims)
130
+ return op(a, out=out)
@@ -0,0 +1,134 @@
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 ..arithmetic.sqrt import sqrt
18
+ from .var import var
19
+
20
+
21
+ def std(a, axis=None, dtype=None, out=None, ddof=0, keepdims=None):
22
+ """
23
+ Compute the standard deviation along the specified axis.
24
+
25
+ Returns the standard deviation, a measure of the spread of a distribution,
26
+ of the tensor elements. The standard deviation is computed for the
27
+ flattened tensor by default, otherwise over the specified axis.
28
+
29
+ Parameters
30
+ ----------
31
+ a : array_like
32
+ Calculate the standard deviation of these values.
33
+ axis : None or int or tuple of ints, optional
34
+ Axis or axes along which the standard deviation is computed. The
35
+ default is to compute the standard deviation of the flattened tensor.
36
+
37
+ If this is a tuple of ints, a standard deviation is performed over
38
+ multiple axes, instead of a single axis or all the axes as before.
39
+ dtype : dtype, optional
40
+ Type to use in computing the standard deviation. For tensors of
41
+ integer type the default is float64, for tensors of float types it is
42
+ the same as the array type.
43
+ out : Tensor, optional
44
+ Alternative output tensor in which to place the result. It must have
45
+ the same shape as the expected output but the type (of the calculated
46
+ values) will be cast if necessary.
47
+ ddof : int, optional
48
+ Means Delta Degrees of Freedom. The divisor used in calculations
49
+ is ``N - ddof``, where ``N`` represents the number of elements.
50
+ By default `ddof` is zero.
51
+ keepdims : bool, optional
52
+ If this is set to True, the axes which are reduced are left
53
+ in the result as dimensions with size one. With this option,
54
+ the result will broadcast correctly against the input tensor.
55
+
56
+ If the default value is passed, then `keepdims` will not be
57
+ passed through to the `std` method of sub-classes of
58
+ `Tensor`, however any non-default value will be. If the
59
+ sub-classes `sum` method does not implement `keepdims` any
60
+ exceptions will be raised.
61
+
62
+ Returns
63
+ -------
64
+ standard_deviation : Tensor, see dtype parameter above.
65
+ If `out` is None, return a new tensor containing the standard deviation,
66
+ otherwise return a reference to the output array.
67
+
68
+ See Also
69
+ --------
70
+ var, mean, nanmean, nanstd, nanvar
71
+
72
+ Notes
73
+ -----
74
+ The standard deviation is the square root of the average of the squared
75
+ deviations from the mean, i.e., ``std = sqrt(mean(abs(x - x.mean())**2))``.
76
+
77
+ The average squared deviation is normally calculated as
78
+ ``x.sum() / N``, where ``N = len(x)``. If, however, `ddof` is specified,
79
+ the divisor ``N - ddof`` is used instead. In standard statistical
80
+ practice, ``ddof=1`` provides an unbiased estimator of the variance
81
+ of the infinite population. ``ddof=0`` provides a maximum likelihood
82
+ estimate of the variance for normally distributed variables. The
83
+ standard deviation computed in this function is the square root of
84
+ the estimated variance, so even with ``ddof=1``, it will not be an
85
+ unbiased estimate of the standard deviation per se.
86
+
87
+ Note that, for complex numbers, `std` takes the absolute
88
+ value before squaring, so that the result is always real and nonnegative.
89
+
90
+ For floating-point input, the *std* is computed using the same
91
+ precision the input has. Depending on the input data, this can cause
92
+ the results to be inaccurate, especially for float32 (see example below).
93
+ Specifying a higher-accuracy accumulator using the `dtype` keyword can
94
+ alleviate this issue.
95
+
96
+ Examples
97
+ --------
98
+ >>> import maxframe.tensor as mt
99
+
100
+ >>> a = mt.array([[1, 2], [3, 4]])
101
+ >>> mt.std(a).execute()
102
+ 1.1180339887498949
103
+ >>> mt.std(a, axis=0).execute()
104
+ array([ 1., 1.])
105
+ >>> mt.std(a, axis=1).execute()
106
+ array([ 0.5, 0.5])
107
+
108
+ In single precision, std() can be inaccurate:
109
+
110
+ >>> a = mt.zeros((2, 512*512), dtype=mt.float32)
111
+ >>> a[0, :] = 1.0
112
+ >>> a[1, :] = 0.1
113
+ >>> mt.std(a).execute()
114
+ 0.45000005
115
+
116
+ Computing the standard deviation in float64 is more accurate:
117
+
118
+ >>> mt.std(a, dtype=mt.float64).execute()
119
+ 0.44999999925494177
120
+
121
+ """
122
+ ret = sqrt(
123
+ var(
124
+ a,
125
+ axis=axis,
126
+ dtype=dtype,
127
+ out=out,
128
+ ddof=ddof,
129
+ keepdims=keepdims,
130
+ )
131
+ )
132
+ if dtype is not None and ret.dtype != dtype:
133
+ ret = ret.astype(dtype)
134
+ return ret
@@ -0,0 +1,125 @@
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 ..datasource import tensor as astensor
21
+ from .core import TensorReduction, TensorReductionMixin
22
+
23
+
24
+ class TensorSum(TensorReduction, TensorReductionMixin):
25
+ _op_type_ = opcodes.SUM
26
+ _func_name = "sum"
27
+
28
+
29
+ def sum(a, axis=None, dtype=None, out=None, keepdims=None):
30
+ """
31
+ Sum of tensor elements over a given axis.
32
+
33
+ Parameters
34
+ ----------
35
+ a : array_like
36
+ Elements to sum.
37
+ axis : None or int or tuple of ints, optional
38
+ Axis or axes along which a sum is performed. The default,
39
+ axis=None, will sum all of the elements of the input tensor. If
40
+ axis is negative it counts from the last to the first axis.
41
+
42
+ If axis is a tuple of ints, a sum is performed on all of the axes
43
+ specified in the tuple instead of a single axis or all the axes as
44
+ before.
45
+ dtype : dtype, optional
46
+ The type of the returned tensor and of the accumulator in which the
47
+ elements are summed. The dtype of `a` is used by default unless `a`
48
+ has an integer dtype of less precision than the default platform
49
+ integer. In that case, if `a` is signed then the platform integer
50
+ is used while if `a` is unsigned then an unsigned integer of the
51
+ same precision as the platform integer is used.
52
+ out : Tensor, optional
53
+ Alternative output tensor in which to place the result. It must have
54
+ the same shape as the expected output, but the type of the output
55
+ values will be cast if necessary.
56
+ keepdims : bool, optional
57
+ If this is set to True, the axes which are reduced are left
58
+ in the result as dimensions with size one. With this option,
59
+ the result will broadcast correctly against the input tensor.
60
+
61
+ If the default value is passed, then `keepdims` will not be
62
+ passed through to the `sum` method of sub-classes of
63
+ `Tensor`, however any non-default value will be. If the
64
+ sub-classes `sum` method does not implement `keepdims` any
65
+ exceptions will be raised.
66
+
67
+ Returns
68
+ -------
69
+ sum_along_axis : Tensor
70
+ An array with the same shape as `a`, with the specified
71
+ axis removed. If `a` is a 0-d tensor, or if `axis` is None, a scalar
72
+ is returned. If an output array is specified, a reference to
73
+ `out` is returned.
74
+
75
+ See Also
76
+ --------
77
+ Tensor.sum : Equivalent method.
78
+
79
+ cumsum : Cumulative sum of tensor elements.
80
+
81
+ trapz : Integration of tensor values using the composite trapezoidal rule.
82
+
83
+ mean, average
84
+
85
+ Notes
86
+ -----
87
+ Arithmetic is modular when using integer types, and no error is
88
+ raised on overflow.
89
+
90
+ The sum of an empty array is the neutral element 0:
91
+
92
+ >>> import maxframe.tensor as mt
93
+
94
+ >>> mt.sum([]).execute()
95
+ 0.0
96
+
97
+ Examples
98
+ --------
99
+ >>> mt.sum([0.5, 1.5]).execute()
100
+ 2.0
101
+ >>> mt.sum([0.5, 0.7, 0.2, 1.5], dtype=mt.int32).execute()
102
+ 1
103
+ >>> mt.sum([[0, 1], [0, 5]]).execute()
104
+ 6
105
+ >>> mt.sum([[0, 1], [0, 5]], axis=0).execute()
106
+ array([0, 6])
107
+ >>> mt.sum([[0, 1], [0, 5]], axis=1).execute()
108
+ array([1, 5])
109
+
110
+ If the accumulator is too small, overflow occurs:
111
+
112
+ >>> mt.ones(128, dtype=mt.int8).sum(dtype=mt.int8).execute()
113
+ -128
114
+
115
+ """
116
+ a = astensor(a)
117
+ if dtype is None:
118
+ if a.dtype == object:
119
+ dtype = a.dtype
120
+ else:
121
+ dtype = np.empty((1,), dtype=a.dtype).sum().dtype
122
+ else:
123
+ dtype = np.dtype(dtype)
124
+ op = TensorSum(axis=axis, dtype=dtype, keepdims=keepdims)
125
+ return op(a, out=out)
@@ -0,0 +1,13 @@
1
+ # Copyright 1999-2024 Alibaba Group Holding Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.