{ "info": { "author": "Alex Rubinsteyn, Sergey Feldman", "author_email": "alex.rubinsteyn@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Scientific/Engineering :: Bio-Informatics" ], "description": "[![Build Status](https://travis-ci.org/iskandr/fancyimpute.svg?branch=master)](https://travis-ci.org/iskandr/fancyimpute) [![Coverage Status](https://coveralls.io/repos/github/iskandr/fancyimpute/badge.svg?branch=master)](https://coveralls.io/github/iskandr/fancyimpute?branch=master) [![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.51773.svg)](http://dx.doi.org/10.5281/zenodo.51773)\n\n\n# fancyimpute\n\nA variety of matrix completion and imputation algorithms implemented in Python 3.6.\n\nNOTE: This project is in \"bare maintenance\" mode. That means we are not planning on adding more imputation algorithms or features (but might if we get inspired). Please do report bugs, and we'll try to fix them. Also, we are happy to take pull requests for more algorithms and/or features. \n\nNOTE: `IterativeImputer` started its life as a `fancyimpute` original, but was then merged into `scikit-learn` and we deleted it from `fancyimpute` in favor of the better-tested `sklearn` version. As a convenience, you can still `from fancyimpute import IterativeImputer`, but under the hood it's just doing `from sklearn.impute import IterativeImputer`. That means if you update `scikit-learn` in the future, you may also change the behavior of `IterativeImputer`. \n\n\n## Usage\n\n```python\nfrom fancyimpute import KNN, NuclearNormMinimization, SoftImpute, BiScaler\n\n# X is the complete data matrix\n# X_incomplete has the same values as X except a subset have been replace with NaN\n\n# Use 3 nearest rows which have a feature to fill in each row's missing features\nX_filled_knn = KNN(k=3).fit_transform(X_incomplete)\n\n# matrix completion using convex optimization to find low-rank solution\n# that still matches observed values. Slow!\nX_filled_nnm = NuclearNormMinimization().fit_transform(X_incomplete)\n\n# Instead of solving the nuclear norm objective directly, instead\n# induce sparsity using singular value thresholding\nX_incomplete_normalized = BiScaler().fit_transform(X_incomplete)\nX_filled_softimpute = SoftImpute().fit_transform(X_incomplete_normalized)\n\n# print mean squared error for the imputation methods above\nnnm_mse = ((X_filled_nnm[missing_mask] - X[missing_mask]) ** 2).mean()\nprint(\"Nuclear norm minimization MSE: %f\" % nnm_mse)\n\nsoftImpute_mse = ((X_filled_softimpute[missing_mask] - X[missing_mask]) ** 2).mean()\nprint(\"SoftImpute MSE: %f\" % softImpute_mse)\n\nknn_mse = ((X_filled_knn[missing_mask] - X[missing_mask]) ** 2).mean()\nprint(\"knnImpute MSE: %f\" % knn_mse)\n```\n\n## Algorithms\n\n* `SimpleFill`: Replaces missing entries with the mean or median of each column.\n\n* `KNN`: Nearest neighbor imputations which weights samples using the mean squared difference\non features for which two rows both have observed data.\n\n* `SoftImpute`: Matrix completion by iterative soft thresholding of SVD decompositions. Inspired by the [softImpute](https://web.stanford.edu/~hastie/swData/softImpute/vignette.html) package for R, which is based on [Spectral Regularization Algorithms for Learning Large Incomplete Matrices](http://web.stanford.edu/~hastie/Papers/mazumder10a.pdf) by Mazumder et. al.\n\n* `IterativeImputer`: A strategy for imputing missing values by modeling each feature with missing values as a function of other features in a round-robin fashion. A stub that links to `scikit-learn`'s [IterativeImputer](https://scikit-learn.org/stable/modules/generated/sklearn.impute.IterativeImputer.html).\n\n* `IterativeSVD`: Matrix completion by iterative low-rank SVD decomposition. Should be similar to SVDimpute from [Missing value estimation methods for DNA microarrays](http://www.ncbi.nlm.nih.gov/pubmed/11395428) by Troyanskaya et. al.\n\n* `MatrixFactorization`: Direct factorization of the incomplete matrix into low-rank `U` and `V`, with an L1 sparsity penalty on the elements of `U` and an L2 penalty on the elements of `V`. Solved by gradient descent.\n\n* `NuclearNormMinimization`: Simple implementation of [Exact Matrix Completion via Convex Optimization](http://statweb.stanford.edu/~candes/papers/MatrixCompletion.pdf\n) by Emmanuel Candes and Benjamin Recht using [cvxpy](http://www.cvxpy.org). Too slow for large matrices.\n\n* `BiScaler`: Iterative estimation of row/column means and standard deviations to get doubly normalized\nmatrix. Not guaranteed to converge but works well in practice. Taken from [Matrix Completion and Low-Rank SVD via Fast Alternating Least Squares](http://arxiv.org/abs/1410.2596).", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/iskandr/fancyimpute", "keywords": "", "license": "http://www.apache.org/licenses/LICENSE-2.0.html", "maintainer": "", "maintainer_email": "", "name": "fancyimpute", "package_url": "https://pypi.org/project/fancyimpute/", "platform": "", "project_url": "https://pypi.org/project/fancyimpute/", "project_urls": { "Homepage": "https://github.com/iskandr/fancyimpute" }, "release_url": "https://pypi.org/project/fancyimpute/0.5.4/", "requires_dist": null, "requires_python": "", "summary": "Matrix completion and feature imputation algorithms", "version": "0.5.4" }, "last_serial": 5974427, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "40519da6ae48a9f9b7e7e082083a9a73", "sha256": "163b3d3394918c7cae22bc0fa1f3449934b1c19509bf3884f3214535f6f62cd7" }, "downloads": -1, "filename": "fancyimpute-0.0.1.tar.gz", "has_sig": false, "md5_digest": "40519da6ae48a9f9b7e7e082083a9a73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3471, "upload_time": "2015-11-13T00:57:35", "url": "https://files.pythonhosted.org/packages/40/39/ba18930df653e2e88d098352b216945ed8864138048147416a7252fd8767/fancyimpute-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "ca0b99cb56fcd84c1303555849184785", "sha256": "eba3c115616c5f025b9fd69cb9040770c07a8cbda4c542e72a0fb4debbc10fd8" }, "downloads": -1, "filename": "fancyimpute-0.0.10.tar.gz", "has_sig": false, "md5_digest": "ca0b99cb56fcd84c1303555849184785", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29588, "upload_time": "2016-04-28T23:14:33", "url": "https://files.pythonhosted.org/packages/96/6d/50acce0b175ffd6f86c387ddeb340810e7ef57d5b1cea318cd09899f4777/fancyimpute-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "0336368ebc340284090f28d82602aa61", "sha256": "01d40efc0a41e305a0ee6a4973b693066141dd50cfb797ff31a8ac07e3a11fb2" }, "downloads": -1, "filename": "fancyimpute-0.0.11.tar.gz", "has_sig": false, "md5_digest": "0336368ebc340284090f28d82602aa61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29889, "upload_time": "2016-04-29T17:12:55", "url": "https://files.pythonhosted.org/packages/48/3c/4b77e13da18ea427d04fc46d02f82a2d1122c8413b4cb49556979c104854/fancyimpute-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "4d0cb117f4f5f36564e23651ba498419", "sha256": "8e93a1330231f483ea96b274baf0bdaa3570c8897e96f0aa50c7fba2a7f6be78" }, "downloads": -1, "filename": "fancyimpute-0.0.12.tar.gz", "has_sig": false, "md5_digest": "4d0cb117f4f5f36564e23651ba498419", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29886, "upload_time": "2016-04-29T17:45:31", "url": "https://files.pythonhosted.org/packages/43/11/f7a4e67f2a8d8e96cdff28da92a169ffa3d23b265ee75c48130a20d21c6a/fancyimpute-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "ef83667f87dfdab69e7128743ae5cac5", "sha256": "f9ba3d52d453623dfd40e2748b4b81fbe67c27a61c419a4f5fbf89b4df2d2066" }, "downloads": -1, "filename": "fancyimpute-0.0.13.tar.gz", "has_sig": false, "md5_digest": "ef83667f87dfdab69e7128743ae5cac5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29835, "upload_time": "2016-04-29T19:19:07", "url": "https://files.pythonhosted.org/packages/6c/f9/c1f1db49bef2ea3f2b4673e80444f2d0519aabd4cee2f71239da7cb654ea/fancyimpute-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "3fdf2853fd963919b057cc9f8e71646e", "sha256": "a73f5f7bd5c45c54deef9400c220be1a17ff74d252271d2ad9183bb23145fabb" }, "downloads": -1, "filename": "fancyimpute-0.0.14.tar.gz", "has_sig": false, "md5_digest": "3fdf2853fd963919b057cc9f8e71646e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29825, "upload_time": "2016-04-29T20:01:40", "url": "https://files.pythonhosted.org/packages/d0/09/6255a0f22f0a86349fb521de42ceaf7a115531385efb019abe0eb80d14e1/fancyimpute-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "2c8e4a3059c6e229303b5c7beaf27ad4", "sha256": "d5b719727b567fac059085b3a99a9054f72c70aaa99a8dac3c3db2aac2eeade2" }, "downloads": -1, "filename": "fancyimpute-0.0.15.tar.gz", "has_sig": false, "md5_digest": "2c8e4a3059c6e229303b5c7beaf27ad4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29876, "upload_time": "2016-05-18T21:11:39", "url": "https://files.pythonhosted.org/packages/61/19/3bee29d1e4e0fef1c6cd3694a68878bae35570ed9a11be4fac6e2013275d/fancyimpute-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "90e49d2d32f5486ed1198144768adf6e", "sha256": "568928147560a7ed0e46447a0e0dddec94d24c4e818057a06888cee3541daa0d" }, "downloads": -1, "filename": "fancyimpute-0.0.16.tar.gz", "has_sig": false, "md5_digest": "90e49d2d32f5486ed1198144768adf6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30056, "upload_time": "2016-05-22T00:21:41", "url": "https://files.pythonhosted.org/packages/f2/b9/9b52d0865be7435a2785864a0f2f13c8d437b766216e4a5be32a58fa69a1/fancyimpute-0.0.16.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "77843badc9e789e6e14280e56cf40a93", "sha256": "0800fbf1db62db2cce3c9a9f4b4f49af073bb10eed2286cff00b7362ff1c6ac8" }, "downloads": -1, "filename": "fancyimpute-0.0.18.tar.gz", "has_sig": false, "md5_digest": "77843badc9e789e6e14280e56cf40a93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25799, "upload_time": "2016-06-02T18:34:51", "url": "https://files.pythonhosted.org/packages/33/e6/f6b9029d12f4173903082d48ab094225bb5c5329f63c790ffa1a4ba9fb58/fancyimpute-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "fc1de27ecc0aa0169c7bb65383247d4e", "sha256": "19f044505c6cdbd06738eed872043cf8307644fc62e63793c4c379be0b5d4c5e" }, "downloads": -1, "filename": "fancyimpute-0.0.19.tar.gz", "has_sig": false, "md5_digest": "fc1de27ecc0aa0169c7bb65383247d4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25802, "upload_time": "2016-07-12T17:17:33", "url": "https://files.pythonhosted.org/packages/51/79/b8b630d3d68eaa7ecfe10aad0203dfe349bb4fa4fcff76deaf4dc9e831c8/fancyimpute-0.0.19.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "edda4794ce239ad97d2a4cee8d39fed4", "sha256": "235eedc6e86a36c0918ea75da71cb2d8f4d85e2b824edd57e9d85213616630b4" }, "downloads": -1, "filename": "fancyimpute-0.0.4.tar.gz", "has_sig": false, "md5_digest": "edda4794ce239ad97d2a4cee8d39fed4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19473, "upload_time": "2016-01-06T03:14:54", "url": "https://files.pythonhosted.org/packages/bc/99/14616f7c56f6c9380825ed92d89e7ab136a2e1f3cc4a8396402994eba159/fancyimpute-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "ba1c95a26b2da94e87d30e952d849023", "sha256": "5dc9c049628fec659c327d5d3f102a7d160e09c30bd34c27cf40d60d43f4b4df" }, "downloads": -1, "filename": "fancyimpute-0.0.5.tar.gz", "has_sig": false, "md5_digest": "ba1c95a26b2da94e87d30e952d849023", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22371, "upload_time": "2016-01-09T01:48:03", "url": "https://files.pythonhosted.org/packages/6e/19/37cd986aa683918663331e0ab2685eb488defff68bc525c5a344b28f8bf3/fancyimpute-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "6c156924d9d777f988eee5b9e4080bb9", "sha256": "91a575c0c9c9b3a3008352f495c62b0f99d7681b90fe67ac9b80202641356f0d" }, "downloads": -1, "filename": "fancyimpute-0.0.6.tar.gz", "has_sig": false, "md5_digest": "6c156924d9d777f988eee5b9e4080bb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28377, "upload_time": "2016-01-27T22:35:51", "url": "https://files.pythonhosted.org/packages/b5/3d/f0da9eac69a5a1b3633586fdc989e08ce8ba6cd8245c4f5b4473a13abd20/fancyimpute-0.0.6.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "6feda560c065266f2ece56cd82a9ab64", "sha256": "fe71e247ecd4d6475bf657fa71088ee80fa6119332ef15aff0d8032874dcdfda" }, "downloads": -1, "filename": "fancyimpute-0.0.9.tar.gz", "has_sig": false, "md5_digest": "6feda560c065266f2ece56cd82a9ab64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29988, "upload_time": "2016-01-28T20:14:14", "url": "https://files.pythonhosted.org/packages/31/8b/c71965162d955e87dafd430d7a3edaeb953674c2b234d116e7e34cad2b8a/fancyimpute-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "6dd52f1aa5f4e87dd91e9c07e957a066", "sha256": "3507cf616a0210b8fa621570c00f6c0bde3f0b358567c6d68e34feaa9e9ea7c3" }, "downloads": -1, "filename": "fancyimpute-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6dd52f1aa5f4e87dd91e9c07e957a066", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25673, "upload_time": "2017-01-09T18:35:40", "url": "https://files.pythonhosted.org/packages/b8/a4/ee43745c002b1e9bcac3edd39e80d093678f4fc913dfbef9e6ccda0f0d2e/fancyimpute-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "68c0a43aec2c6fce3d66e726b67c9bb4", "sha256": "c1ca8eb2c5ac3e2af2a7836c9352ce00224d4356da5035f66e51f6a21fbdadb3" }, "downloads": -1, "filename": "fancyimpute-0.2.0.tar.gz", "has_sig": false, "md5_digest": "68c0a43aec2c6fce3d66e726b67c9bb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22964, "upload_time": "2017-02-24T20:25:25", "url": "https://files.pythonhosted.org/packages/b8/4d/f460fe747949d2b84f21cfaebe58fe1de8f4dcd6779d5fc58adb2f885417/fancyimpute-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "804ae4ea1d10fc592203c08950459ff4", "sha256": "127ffee531ad3d43e2901fcb1b20aa7b820cc32bf757923fdb989c4f856c8ec9" }, "downloads": -1, "filename": "fancyimpute-0.3.0.tar.gz", "has_sig": false, "md5_digest": "804ae4ea1d10fc592203c08950459ff4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26376, "upload_time": "2017-12-29T17:52:18", "url": "https://files.pythonhosted.org/packages/2f/73/5a7dbedad15beb751a47c1292041be78fa3c0aff5557c5cf2b697241bde0/fancyimpute-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "35c3959a70ef4791341a88998a59bb6d", "sha256": "843ab11aa226a4933dfdc3c9cddbcfce4b9e05bf08a586bdc33648349ea674ac" }, "downloads": -1, "filename": "fancyimpute-0.3.1.tar.gz", "has_sig": false, "md5_digest": "35c3959a70ef4791341a88998a59bb6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24066, "upload_time": "2018-02-12T21:27:36", "url": "https://files.pythonhosted.org/packages/f2/e0/d81964fba1608d590440939fc582b5bd7e732dc23f3a831b1a48e5022c2c/fancyimpute-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "7758bda675f6bbd7147bd1522a47e659", "sha256": "d49c44e878e6c9a73b3083ec84f4ee3b5ffaa80c1009ac0c966be6e5b9cd9891" }, "downloads": -1, "filename": "fancyimpute-0.3.2-py3.6.egg", "has_sig": false, "md5_digest": "7758bda675f6bbd7147bd1522a47e659", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 64466, "upload_time": "2018-09-15T17:55:40", "url": "https://files.pythonhosted.org/packages/a9/c1/9aea45227267f0778908cf063b3fb6f6767b78f19989f6e099faad987356/fancyimpute-0.3.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "be20c606d127c3871fa2bb2596d0840c", "sha256": "5db78d27e046e56cb8f8e6a61101ca3bdc1d1a62cde3af123b146c77200d47ae" }, "downloads": -1, "filename": "fancyimpute-0.3.2.tar.gz", "has_sig": false, "md5_digest": "be20c606d127c3871fa2bb2596d0840c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24100, "upload_time": "2018-07-12T02:49:36", "url": "https://files.pythonhosted.org/packages/44/2c/075f75eb98ac7bad9887f946d52702f777465d541153e0093bcd33a44211/fancyimpute-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "36f351dfd21f4f46cc00c48e10cae6f4", "sha256": "5b6f62b91a01adff6ff140fbe05a7ec747d8307dbc3e1c23c71088a44a609f3a" }, "downloads": -1, "filename": "fancyimpute-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "36f351dfd21f4f46cc00c48e10cae6f4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 43469, "upload_time": "2018-09-15T17:55:37", "url": "https://files.pythonhosted.org/packages/24/8a/79952041086f139612966ee020f8dc50595fe1a93644d428dbc84852b902/fancyimpute-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8aab27e5a2b567f2509ee748a8e5f8cf", "sha256": "1a479d890d3b3fd605135ea956745c82171fde699e9bb40e96c783bed488d388" }, "downloads": -1, "filename": "fancyimpute-0.4.0.tar.gz", "has_sig": false, "md5_digest": "8aab27e5a2b567f2509ee748a8e5f8cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31805, "upload_time": "2018-09-15T17:55:42", "url": "https://files.pythonhosted.org/packages/c4/9f/d69d4078abb84c8c6e21923bd76059129add7928e2786e6add8d812eb9fb/fancyimpute-0.4.0.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "8b22f3a5e58562b70ca039dd49316116", "sha256": "59772b178d6fb303b85d50a33c14303364cdfe839d6896687826c7806cd38565" }, "downloads": -1, "filename": "fancyimpute-0.4.2.tar.gz", "has_sig": false, "md5_digest": "8b22f3a5e58562b70ca039dd49316116", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34688, "upload_time": "2018-11-09T21:22:43", "url": "https://files.pythonhosted.org/packages/9d/ce/8ec5d52478b137442f5719f6fd87a2cc398c28b173d662b0cbfaa07fd82e/fancyimpute-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "187d47556bf1e539294cb3400160c3fa", "sha256": "3d450a462f88b815cc1f4edd04f93d74e8b3336c44d0e66eef5827b4b0271ae6" }, "downloads": -1, "filename": "fancyimpute-0.4.3.tar.gz", "has_sig": false, "md5_digest": "187d47556bf1e539294cb3400160c3fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34369, "upload_time": "2019-04-10T15:19:08", "url": "https://files.pythonhosted.org/packages/98/fd/c56472f080dfebc0bdca2962e55729c1fa316bc92aa83caa822d94565291/fancyimpute-0.4.3.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "233c1c6ccfa8d524019b7086b96de59e", "sha256": "01d94a354ea07c43f2cb3b2f208eccf0ed2cd0dbdc097da2a94961fcd4318848" }, "downloads": -1, "filename": "fancyimpute-0.5.2.tar.gz", "has_sig": false, "md5_digest": "233c1c6ccfa8d524019b7086b96de59e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21112, "upload_time": "2019-06-20T16:51:57", "url": "https://files.pythonhosted.org/packages/95/b0/95ef0f7c3436a58e7205947f7bf8301f20e4785e2e8973306384aaf64f35/fancyimpute-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "4186b11d0224978757ebcb410c6e169e", "sha256": "4fd825b9fba797fd9861d965e9679b132638ad51bd6a105f4137eb347bf773b8" }, "downloads": -1, "filename": "fancyimpute-0.5.3.tar.gz", "has_sig": false, "md5_digest": "4186b11d0224978757ebcb410c6e169e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21174, "upload_time": "2019-07-13T15:35:13", "url": "https://files.pythonhosted.org/packages/65/1c/d096286b24b528142b52eda7445fea1371f1700f640ff252f786b4befb4c/fancyimpute-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "aca1656b7743346f2a245f4cc16ec676", "sha256": "29e467b155c166f86d5dc9e0e1cb81742970ae62b47925dbb8183b5ab1d7e1c7" }, "downloads": -1, "filename": "fancyimpute-0.5.4.tar.gz", "has_sig": false, "md5_digest": "aca1656b7743346f2a245f4cc16ec676", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20312, "upload_time": "2019-10-15T02:21:24", "url": "https://files.pythonhosted.org/packages/8e/da/418fb3f488c7fd79436fc0736fb9641819c5bb3d090d26a14ac68dc5097b/fancyimpute-0.5.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "aca1656b7743346f2a245f4cc16ec676", "sha256": "29e467b155c166f86d5dc9e0e1cb81742970ae62b47925dbb8183b5ab1d7e1c7" }, "downloads": -1, "filename": "fancyimpute-0.5.4.tar.gz", "has_sig": false, "md5_digest": "aca1656b7743346f2a245f4cc16ec676", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20312, "upload_time": "2019-10-15T02:21:24", "url": "https://files.pythonhosted.org/packages/8e/da/418fb3f488c7fd79436fc0736fb9641819c5bb3d090d26a14ac68dc5097b/fancyimpute-0.5.4.tar.gz" } ] }