मैं संकेतों (लगातार mesures पेश करता है) की एक सूची के लिए मूल्य रखें:अजगर सूची ही बराबर यदि n पूर्ववर्तियों
signals = [0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0]
मैं एक संकेत केवल पिछले n mesures के बराबर है, तो वैध पर विचार करें।
ईजी। अगर हम (n=2)
प्रमाणीकरण के लिए केवल 2 मेसर्स पर विचार करते हैं, तो पहली बार सिग्नल 0 से 1 तक बदल जाते हैं, हम इसे अभी भी 0 पर मानते हैं, लेकिन अगली मेसुर, अगर यह फिर से 1 है तो हम मानते हैं कि यह अभी भी वैध है और इसे बनाना है। फिर हमें 2 की आवश्यकता होगी 0 के मेसर्स को इसे फिर से चालू करने के लिए, आदि ... यहां सिग्नल सरलीकरण के लिए 0 और 1 हैं लेकिन मेरे आवेदन में वे अन्य पूर्णांक हो सकते हैं।
वांछित उत्पादन:
# For n = 2:
valid_s = [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0]
# For n = 3:
valid_s = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0]
# For n = 4:
valid_s = [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0]
मैं इसे करने का एक pythonesque एक लाइनर रास्ते से देख रहा था लेकिन वांछित आउटपुट को खोजने के लिए प्रतीत नहीं कर सकते हैं।
S = signals
# For n = 2
[S[i] if S[i] == S[i-1] else S[i-2] for i, _ in enumerate(S)]
# gives [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0]
# For n = 3
[S[i] if S[i] == S[i-1] == S[i-2] else S[i-3] for i, _ in enumerate(S)]
# gives [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0]
संपादित करें:: मैं पंक्तियों के साथ कुछ करने की कोशिश की मैं numpy
के लिए खुला रहा हूँ अगर यह यह आसान बनाता है के रूप में यह पहले से ही आयातित है।
क्या आपका वांछित आउटपुट n = 2 सही है? क्या आप अपने आउटपुट को केवल मापा मानों पर या पहले से ही "सही" पिछले मानों पर आधारित करते हैं? – voiDnyx
हां, n = 2 के लिए मुझे 1 या 0 पर स्विच करने पर विचार करने के लिए लगातार दो या 0 की आवश्यकता है। यदि मेरे पास लगातार दो नहीं हैं, तो मैं पहले से ही पहले से मान्य मान रखता हूं। इसलिए एन = 2 के लिए वांछित आउटपुट। – Fredovsky