私は291 * 291の行列を持ち、値(0,1)、(1,2)、(2,3)....(n-1、n)だけを自動的に取得したいと思います。ループや関数を使って簡単に行う方法はありますか?'numpy.ndarray'オブジェクトは、対角行列を取得するときに呼び出し可能ではありません。
行列は、データ・ベースのテキスト間のコサイン類似度:
bodies = [d['body'] for d in data]
tfidf = vectorizer.fit_transform(bodies)
matrix =(tfidf * tfidf.T).A
私はベクトルを作成したいので、これは私がそれを行うにしようとしています方法です:
vector = []
for i in range(len(data) -1):
vector.append(matrix(i, i+1))
しかし、次のエラーが表示されます。
TypeError: 'numpy.ndarray' object is not callable
修正方法はありますか?
あなたのコード内の 'matrix'は何ですか?定義を表示 – Leva7
配列をインデックス化するには、行列[i、i + 1] 'を使用します。 – gboffi
最後の行で 'vector.append(matrix [i、i + 1])'を試してください。あなたのエラーメッセージからnumpy配列。括弧は関数の引数であり、括弧[]は要素です。 –