大きなリストのどのインデックスでサブリストと一致するかを見つける必要があります。
c = np.array(close)
EMA50 = np.array(MA50)
sublist = [False,True,True]
biglist = (c-EMA50)/c>0.01
>>>array([False, False, False, False, False, False, False, False, False,
False, False, False, False, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, False, False, True, False, True, True, False, False,
True, False, False, False, False, False, False, False, True,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, True, True, True,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, True, True, True, True], dtype=bool)
>>>sublist in biglist
>>>False
Trueを期待していましたが、Falseを返します。
必要な出力は
index_loc = [12,31,68,112]
in
サブ配列をチェックしません。代わりに、要素をチェックします。
次のようなことをする必要があります:(読みやすさのために大きな配列とサブリストに
使用A
しb
ます。)
n = len(b)
c = [i for i in xrange(len(A)-n+1) if (b==A[i:i+n]).all()]
c
必要なインデックスのリストです。
説明:
これはPythonの基本的なリスト内包表記です。
アイデアは、bigarrayのサブ配列を作成し、それがサブリストと一致するかどうかを確認することです。
理解を深めるためにステートメントを分解します。
c = []
for i in xrange(len(A)-n+1):
if (b==A[i:i+n]).all(): # if list and arrays match
c.append(i)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加