web-dev-qa-db-ja.com

AttributeError: 'Tuple'オブジェクトには属性 'shape'がありません

そのため、マトリックスの要素を標準化するコードを書いてきましたが、使用した関数は次のとおりです。

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分類コードです

6
Ferial Mohammed

投稿したエラーによると、Dataはタプル型であり、データに定義された属性shapeはありません。 Data関数を呼び出すときにpreprocess関数をキャストしてみてください。例:

preprocess(numpy.array(Data))
5
José Sánchez