2016-11-14 4 views
0

imagesは以下の辞書です。 newは2のタプルです。new[0]は1000画像です。各画像は784の生のものです。したがって、形状は(1000,784)です。 new[1]がそのラベルです。私は0または1を意味します。また、以下のエラーが.remove()を呼び出した後に来る、なぜ私が疑問に思ってintValueError:複数の要素を含む配列の真理値はあいまいです。リストから要素を削除するにはa.any()またはa.all()を使用してください。

images = defaultdict(list) 
new=data[0] 

for image, label in zip(*new): 
    images[label].append(image) 

listImages=images[0] 
r=[listImages[0],listImages[1],listImages[2]] 
listImages.remove(r[1]) 

のNP配列である:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 
+1

このエラーがどのコード部分を指しているのでしょうか。 –

+0

@ScottHunter私はそれが '.remove()'呼び出しだと思います。 – Barmar

+0

最後の行にエラーが表示されます –

答えて

0

ご質問は、メソッド.remove()が、間の型の違いに関するものではありません'numpy.intXX'と 'int'。

辞書のキーとしてタプルを使用する場合、タプルエントリのタイプは「numpy.intXX」ではなく「int」であることが最適です。私はタプル(aNumpyArray)から直接派生した 'numpy.int32'タイプのエントリタプルの存在を調べるときに発生した同じエラーに遭遇します。このエラーを排除するために

、私はエントリの種類は「int型であることを確認するために

def safeTuple(inputList): 
    return tuple(map(lambda x: int(x), inputList)) 

としての機能を定義しました。したがって、私はこのエラーに遭遇することはありません。

この情報は役に立ちましたか?

関連する問題