votes up 6

Array passed to %s is full of zeros.

Package:
Exception Class:
ValueError

Raise code

def _check_init(A, shape, whom):
    A = check_array(A)
    if np.shape(A) != shape:
        raise ValueError('Array with wrong shape passed to %s. Expected %s, '
                         'but got %s ' % (whom, shape, np.shape(A)))
    check_non_negative(A, whom)
    if np.max(A) == 0:
        raise ValueError('Array passed to %s is full of zeros.' % whom)


def _beta_divergence(X, W, H, beta, square_root=False):
    """Compute the beta-divergence of X and dot(W, H).

    Parameters
    ---------- """
😲 Agile task management is now easier than calling a taxi. #Tracklify
🙏 Scream for help to Ukraine
Today, 2nd July 2022, Russia continues bombing and firing Ukraine. Don't trust Russia, they are bombing us and brazenly lying in same time they are not doing this 😠, civilians and children are dying too! We are screaming and asking exactly you to help us, we want to survive, our families, children, older ones.
Please spread the information, and ask your governemnt to stop Russia by any means. We promise to work extrahard after survival to make the world safer place for all.

Ways to fix

votes up 1 votes down

Summary:

This exception is thrown when the _check_init function is called. This function takes in three required parameters: A, shape, and whom. A must be an array that has the same shape as the value passed in for the parameter shape. Then a check is performed to ensure that A has a value larger than 0, if nothing is found then this exception is thrown. So ensure that A has at least one value that is larger than 0.

Code to Reproduce the Error (Wrong):

from sklearn.decomposition._nmf import _check_init
import numpy as np

A = np.zeros((2,2))
shape = (2,2)
_check_init(A, shape, 'whom')

Error Message:

ValueError                                Traceback (most recent call last)
<ipython-input-2-bb9bec6d8eb8> in <module>()
      4 A = np.zeros((2,2))
      5 shape = (2,2)
----> 6 _check_init(A, shape, 'whom')

/usr/local/lib/python3.7/dist-packages/sklearn/decomposition/_nmf.py in _check_init(A, shape, whom)
     57     check_non_negative(A, whom)
     58     if np.max(A) == 0:
---> 59         raise ValueError('Array passed to %s is full of zeros.' % whom)
     60 
     61 

ValueError: Array passed to whom is full of zeros.

Working Version (Right):

from sklearn.decomposition._nmf import _check_init
import numpy as np

A = np.ones((2,2))
shape = (2,2)
_check_init(A, shape, 'whom')
Jul 16, 2021 codingcomedyig answer

Add a possible fix

Please authorize to post fix