2017-03-23 5 views
0

私は、配列内のデータセットにラベルを付けるIFステートメントツリーを作成しました。多次元配列はfeatureVectorsと呼ばれ、numberOfSides、standardDeviationsPerimeter、standardDeviationsAngles(コードのこのセクションでは使用されません)、およびlargestAnglesは配列に含まれるすべての配列です。私は、IF文を通して、featureVectors内のすべての配列を渡したいと思いますが、最初のものをループしないので、すべてのデータセットにラベル2を与えます。多次元配列のループはあまりよくありません。これは私のコードです。forループを使用して多次元配列から値にアクセスする方法は?

for shape in range(0, len(sidesDividedByPerimeter)): 
    if numberOfSides[0] == 1: 
     labels = 0 
    elif numberOfSides[0] > 1 and numberOfSides[0] < 3.5: 
     labels = 1 
    elif numberOfSides[0] > 3.5: 
     if standardDeviationsPerimeter[0] < 0.1458: 
      if largestAngles[0] < 104.79: 
       labels = 2 
      elif largestAngles[0] >= 104.79: 
       labels = 3 
    elif standardDeviationsPerimeter[0] >= 0.1458: 
      labels = 4 

    print(featureVectors) 
    print(labels) 
    #featureVectors[shape].append(labels) 

This gives me the output:

私だけではなく、最初に停止するのアレイの各々を介して実行する必要があります。私は私の[0]のためにそのことを知っていますが、私は何をすべきかわかりません。

答えて

0

ここでshapeはサイクリングステップごとに1つずつ追加するサイクリング変数ですが、サイクリングボディではこの変数をまったく使用していません。

あなたの配列が何を意味するのかよく分かりませんが、すべての[0]を[shape]に置き換えてみてください。おそらく期待どおりに動作します。

+0

もし私が[2,2,0,0,0]を返したら、最初の4つの値は正しいが、5番目の値は1でなければならない。 –

関連する問題