AttributeError: obiectul ‘tuple’ nu are atributul ‘shape’ (Programare, Python, Python 2.7, Numpy, Attributeerror)

Ferial Mohammed a intrebat.
a intrebat.

Deci, am scris un cod pentru a standardiza elementele unei matrice, iar funcția pe care am folosit-o este următoarea:

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

Funcționează foarte bine în afara clasei, dar când este folosită în interiorul ei îmi dă această eroare:

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

Aveți vreo idee despre cum aș putea să o rezolv? P.S. Acesta este un cod de clasificare KNN.

Comentarii

  • Poate încercați să convertiți Data într-un numpy.array? –  > Por José Sánchez.
  • Ce este Data? –  > Por hpaulj.
1 răspunsuri
José Sánchez

În conformitate cu eroarea pe care ați postat-o, Data este de tip tuple și nu există niciun atribut shape definit pentru date. Ați putea încerca să faceți o distribuție Data atunci când apelați preprocess funcția, de exemplu:

preprocess(numpy.array(Data))