{"id":26979,"library":"fancyimpute","title":"fancyimpute","description":"Matrix completion and feature imputation algorithms for Python. Current version is 0.7.0 (last release 2020). The library provides iterative imputation methods like SoftImpute, IterativeImputer, KNN, and NuclearNormMinimization. It is in maintenance mode with no recent updates.","status":"maintenance","version":"0.7.0","language":"python","source_language":"en","source_url":"https://github.com/iskandr/fancyimpute","tags":["imputation","matrix-completion","missing-data","machine-learning","data-cleaning"],"install":[{"cmd":"pip install fancyimpute","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"core dependency for array operations","package":"numpy","optional":false},{"reason":"sparse matrices and linear algebra","package":"scipy","optional":false},{"reason":"used for KNN and IterativeImputer","package":"scikit-learn","optional":false},{"reason":"used for convex optimization (NuclearNormMinimization)","package":"cvxpy","optional":true}],"imports":[{"note":"correct import","wrong":"","symbol":"SimpleFill","correct":"from fancyimpute import SimpleFill"},{"note":"correct import","wrong":"","symbol":"KNN","correct":"from fancyimpute import KNN"},{"note":"correct import","wrong":"","symbol":"SoftImpute","correct":"from fancyimpute import SoftImpute"},{"note":"wrong: internal submodule not exposed","wrong":"from fancyimpute.iterative_imputer import IterativeImputer","symbol":"IterativeImputer","correct":"from fancyimpute import IterativeImputer"},{"note":"correct import","wrong":"","symbol":"NuclearNormMinimization","correct":"from fancyimpute import NuclearNormMinimization"}],"quickstart":{"code":"import numpy as np\nfrom fancyimpute import SoftImpute\n\n# Create data with missing values\nX = np.array([[1, 2, np.nan], [4, np.nan, 6], [7, 8, 9]])\n# impute using SoftImpute\nX_filled = SoftImpute().fit_transform(X)\nprint(X_filled)","lang":"python","description":"Basic usage: impute missing values using SoftImpute."},"warnings":[{"fix":"Use sklearn.impute.IterativeImputer or other up-to-date libraries.","message":"fancyimpute is no longer actively maintained (last release 2020). Consider using sklearn.impute.IterativeImputer for iterative imputation or other modern alternatives.","severity":"deprecated","affected_versions":">=0.7.0"},{"fix":"Ensure data is a 2D numpy array with NaN for missing values. Convert pandas DataFrame with .values.","message":"Input data must be a 2D numpy array with NaN values for missing entries. If you use a pandas DataFrame, it will be converted but columns may be reordered.","severity":"gotcha","affected_versions":"all"},{"fix":"Install cvxpy: pip install cvxpy","message":"Some solvers (e.g., NuclearNormMinimization) require cvxpy, which is an optional dependency. If not installed, import will fail.","severity":"gotcha","affected_versions":"all"},{"fix":"Use fit_transform() or fit() then transform() instead of relying on fit() returning imputed data.","message":"In version 0.5.0, the API changed: fit() returns a fitted model, and transform() or fit_transform() must be used to impute. Older versions used fit() to return imputed data.","severity":"breaking","affected_versions":"0.5.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run: pip install fancyimpute","cause":"fancyimpute not installed or installed in wrong environment.","error":"ImportError: No module named 'fancyimpute'"},{"fix":"Replace infinity with NaN using np.isinf, or scale data.","cause":"Data contains infinity or extremely large values.","error":"ValueError: Input contains NaN, infinity or a value too large for dtype('float64')"},{"fix":"Install cvxpy: pip install cvxpy","cause":"Attempting to use NuclearNormMinimization without cvxpy installed.","error":"ModuleNotFoundError: No module named 'cvxpy'"},{"fix":"Upgrade fancyimpute: pip install --upgrade fancyimpute","cause":"Old version of fancyimpute (<0.5.0) where fit() returned imputed matrix.","error":"AttributeError: 'SoftImpute' object has no attribute 'fit_transform'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}