2016-12-17 2 views
0

So wurde ich ein Schreiben von Code die Elemente einer Matrix zu standardisieren und die Funktion I ist wie folgt verwendet:Attribute: ‚tuple‘ Objekt hat kein Attribut ‚Form‘

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 

Es funktioniert sehr gut außerhalb die Klasse, aber wenn sie innerhalb davon benutzt wird, gibt es mir diesen Fehler:

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

Irgendeine Idee auf, wie ich es reparieren kann ?? P.S. Dies ist ein KNN-Klassifizierungscode

+0

Vielleicht ist Ihr 'Data' in einen' numpy.array' versuchen Umwandlung? –

+0

Was ist "Daten"? – hpaulj

Antwort

1

Entsprechend dem von Ihnen geposteten Fehler ist Data vom Typ Tupel und es ist kein Attribut shape für Daten definiert. Sie könnten versuchen, Data Gießen, wenn Sie Ihre preprocess Funktion aufrufen, z.B .:

preprocess(numpy.array(Data)) 
Verwandte Themen