私のコードの関連部分はここにあります *編集:初めて外側のループは含まれませんでした。pythonリストの問題、値に設定されている要素がありませんでした
for i in range(numAttributes):
for w in range(numFeatures):
if X[i][w]!=0:
print ("Setting nFeat[",y[i],"][",w,"]")
self._Nfeat[y[i]][w]=1
print self._Nfeat[3][numFeatures-1]
if self._Nfeat[3][numFeatures-1]!=0:
print("y[i] is: ", y[i]," and w is: ", w)
sys.exit()
本質的にはself._Nfeat[3][numFeatures-1]
が1に設定されているはずです。 print
ステートメントと最後のif
ステートメントは、すべてデバッグのために配置されています。
最後の4つの物事の出力は、次のとおりです。
0
setting nFeat[1][265676]
1
y[i] is 1 and w is 26576
私も他の場所で他の場合self._Nfeat[3][numFeatures-1]!=0
チェックを入れて、それは間違いなく右の現在の配置の前に起こっているのを確認しました。
self._Nfeat[3][numFeatures-1]
はすべきときに変更されているように見えるので、これは非常に混乱しています。
リストself._Nfeatがでのinitに初期化されている:その後、他にどこのコードにはあり
self._Nfeat=[[0]*numFeatures]*numClasses
で再初期化されていないメソッドの開始時に
self._Nfeat=[]
このリストをまったく扱うものではありません。
私は問題があなたのインスタンスであるのpythonに新しいですし、大幅に任意のヘルプをお願い申し上げます
あなたの質問は明確ではないので、具体的にする必要があります。どうやら 'y [i]'は '1'ですが、' nFeat [1] 'ではなく' nFeat [3] 'をチェックしているようです。その理由は何ですか? – Selcuk
nFeat [3] [265676]は1に設定しないでください。しかし、コードのこの時点で起こっています。 nFeat [1]が参照されているとき、この部分で1に設定されているという混乱が生じます。 – user3692508
ネストされたリストを生成するために、おそらく同じリストをクローンしています。この場合、すべてのリストは同じメモリ位置を指します。最初に 'self._Nfeat'をインスタンス化する方法を投稿してください。 – Selcuk