maxframe 0.1.0b5__cp38-cp38-macosx_11_0_arm64.whl

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

Potentially problematic release.


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

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