因此,我一直在编写代码以标准化矩阵的元素,而我使用的函数如下:
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
它在类外运行很好,但是在类内使用时却出现此错误:
AttributeError: 'tuple' object has no attribute 'shape'
关于如何解决它的任何想法吗?
附言这是KNN分类代码
解决方法:
根据您发布的错误,数据为元组类型,并且没有为数据定义属性形状.您可以在调用预处理函数时尝试投射数据,例如:
preprocess(numpy.array(Data))