1. ホーム
  2. python

[解決済み] AttributeError: 'tuple' オブジェクトには 'shape' という属性がありません。

2022-02-12 16:50:22

質問

そこで、行列の要素を標準化するコードを書いているのですが、使った関数は次のようなものです。

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'

どうすれば直るのか、何か心当たりはありませんか? P.S. これはKNN分類コードです。

解決方法は?

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

preprocess(numpy.array(Data))