AttributeError:“元组”对象没有属性“ shape”

Fer*_*med 6 python numpy attributeerror python-2.7

因此,我一直在编写代码以标准化矩阵的元素,而我使用的函数如下:

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
Run Code Online (Sandbox Code Playgroud)

它在类外运行很好,但是在类内使用时却出现此错误:

  AttributeError: 'tuple' object has no attribute 'shape'
Run Code Online (Sandbox Code Playgroud)

关于如何解决它的任何想法吗?PS这是KNN分类代码

Jos*_*hez 5

根据您发布的错误,Data其类型为元组,并且没有shape为数据定义属性。您可以Data在调用preprocess函数时尝试进行强制类型转换,例如:

preprocess(numpy.array(Data))
Run Code Online (Sandbox Code Playgroud)