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

59,863

According to the error you posted, Data is of type tuple and there is no attribute shape defined for data. You could try casting Data when you call your preprocess function, e.g.:

preprocess(numpy.array(Data))
Share:
59,863
Admin
Author by

Admin

Updated on July 09, 2022

Comments

  • Admin
    Admin almost 2 years

    So I have been writing a code to standardize the elements of a matrix and the function I used is as follows:

    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
    

    It works very well outside the class but when used inside of it it gives me this error:

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

    Any idea on how I can fix it?? P.S. This is a KNN classification code