web-dev-qa-db-fra.com

AttributeError: l'objet 'Tuple' n'a pas d'attribut 'shape'

J'ai donc écrit un code pour standardiser les éléments d'une matrice et la fonction que j'ai utilisée est la suivante:

def preprocess(Data):
    if stdn ==True:
       st=np.empty((Data.shape[0],Data.shape[1]))
       for i in xrange(0,Data.shape[0]):
           st[i,0]=Data[i,0]
       for i in xrange(1,Data.shape[1]):
           st[:,i]=((Data[:,i]-np.min(Data[:,i]))/(np.ptp(Data[:,i])))       
           np.random.shuffle(st)
       return st
    else:
       return Data

Cela fonctionne très bien en dehors de la classe mais lorsqu'il est utilisé à l'intérieur, cela me donne cette erreur:

  AttributeError: 'Tuple' object has no attribute 'shape'

Une idée sur la façon dont je peux le réparer ?? P.S. Ceci est un code de classification KNN

6
Ferial Mohammed

Selon l'erreur que vous avez publiée, Data est de type Tuple et aucun attribut shape n'est défini pour les données. Vous pouvez essayer de caster Data lorsque vous appelez votre fonction preprocess, par exemple:

preprocess(numpy.array(Data))
5
José Sánchez