2017-11-10 4 views
0

私はPythonで配列を持っています。この配列は別の配列へのインデックスを保持します。私はこの配列から守りたいインデックスを削除しました。配列の値を除外する -

stations = [1,2,3]

のはxメインアレイを呼ぶことにしましょう。それには5列あり、1番目と5番目を削除し、残りをstationsという配列に入れました。

ステーションからの値が除外されているifステートメントを作成したいと考えています。だから、私は駅の配列内のインデックスが0で、他のインデックス(0と4)が0でないインスタンス(日)の数を見つけようとしています。

どうすればいいですか?私はこれまでこれを持っていますが、正しいとは思われません。

for j in range(len(x)): 
    if x[j,0] != 0 and x[j,4] != 0 and numpy.where(x[j,stations[0]:stations[len(stations)-1]]) == 0: 
     days += 1 
return days 

答えて

0

私はあなたの問題は非常に明確だとは思わないが、あなたがステーションに含まれているインデックスを除外するようなx colsを望むなら、これを行う。

excluded_station_x = [col for i, col in enumerate(x) if i not in stations] 

これはリストの理解であり、iterableを横断して新しいリストを作成する方法です。 )

excluded_station_x = [] 
for i, col in enumerate(x): 
    if i not in stations: 
    excluded_station_x.append(col) 

列挙を(執筆など、その同じ我々は、リストを反復処理として各要素の値とインデックスの両方を生成します。

リクエストに応じて、列挙せずにやります。 元のリストを変更するので、私はこれが嫌いですが、それぞれの悪いインデックスのdelもできます。

for i in stations: 
    del x[i] 
+0

これをもっと簡単にできますか?列挙と列が何であるかわからないのですか? – Surya

+0

もちろん、私はいくつかのノートを追加しました。 colは単純に、私がリストを反復しながら要素の値を呼び出したものです。 – Antithesis

+0

https://docs.python.org/3/library/functions.html#enumerate – Antithesis

関連する問題