2016-07-15 9 views
0

の3つの平行な配列に機能を適用します。 binLabelsに空の配列の配列が含まれています。それぞれ1と0を記入したい場合は、たとえばcatA = [A B C A B D]binA = []とします。 trueLabelsは、それぞれの私の本当のカテゴリラベル[A C C B B D]すなわち、y_true_categories(同一の複数のアレイを含んでいる。この場合、私のbinaryConversion関数は、配列binAため[1 0 1 0 1 1]を記入すべきである。は、私は、このようなアレイの3つのアレイを有するアレイ

を私の現在の機能は、これを達成されていないいくつかの理由空bin A, binB, binCのそれぞれを離れる。

私が間違ってやっているか?

答えて

0

私は答えを考え出した。私は、空のバイナリラベルで始まり、およびZIPた場合にのみ、すべての動作するため、内側ジップ文が動作しません。あなたが圧縮している配列は同じ長さそこで、binaryConversion(trueLabel, evalLabel, binaryLabel)内のzip関数からbinaryLabelを削除し、ループ内の空のバイナリ配列のそれぞれにbinaryLabelを追加しました。さらに、実際の空の配列binaryLabelの代わりに、1と0を要素ごとにbinaryに追加しました。

新コード:

def binaryConversion(trueLabel, evalLabel, emptyBinaryArray): 
    for true,eval in zip(trueLabel, evalLabel): 
     if eval == true: 
      emptyBinaryArray.append(1) 
     else: 
      emptyBinaryArray.append(0) 

for trueLabels,predictionLabels,emptyBinaryArray in zip(trueLabels,catLabels,binaryLabels): 
    binaryConversion(trueLabels, predictionLabels, emptyBinaryArray)