मैं एक निश्चित मूल्य खोजने की कोशिश कर रहा हूं जो एक निश्चित सीमा के भीतर है। मुझे पता है कि np.isclose का उपयोग एक निश्चित सहिष्णुता के साथ करेगा। हालांकि, यह परिणाम को बूलियन चर के संदर्भ में प्रिंट करेगा। तो, मैं वही करना चाहता हूं लेकिन केवल सही या गलत के बजाय मानों को प्रिंट करता हूं।

mylist = (1.5,3.1251,5.8741,9.213,7.858,2.1242,8.18956,2.5452,4.745,2.1254)
threshold = 3.5
result = np.isclose(mylist, threshold, rtol = 1e-05)
print(result) 

नीचे प्रिंट के बजाय:

result = array([False, True, False, False, False, True, False, True, False, True])

मैं इसे निम्नलिखित प्रिंट करना चाहता हूं:

result = array([3.1251, 2.1242, 2.5452, 2.1254])

पीएस परिणाम सिर्फ एक उदाहरण है वास्तविक परिणाम नहीं।

1 संपादित करें

मैं निम्नलिखित होने के लिए कोड को बदलने में कामयाब रहा:

def check_x_axis_list(comp_list, target_value, tolerance):
    x_axis_result = []
    for x in range(0, len(comp_list)):
        curent_value = comp_list[x]
        if curent_value >= target_value - tolerance and curent_value <= target_value + tolerance:
            x_axis_result.append(comp_list[x])
    return x_axis_result

और सहिष्णुता के लिए मैंने निम्नलिखित करने की कोशिश की:

tol_max = max(mylist)
tol_min = min(mylist)
tol = (tol_max - tol_min) / 2

हालाँकि, मुझे यह त्रुटि होती रहती है:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

2 संपादित करें

मैं कोड को निम्न कोड में बदलता हूं लेकिन फिर भी, मुझे वही त्रुटि मिल रही है:

result = [val for val in comp_list if abs(val - target_value) < tolerance]
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

3 संपादित करें

समीकरण

पीएसडी प्लॉट चोटियों के साथ

समीकरण प्लॉट पैरामीटर

मैं PSD प्लॉट से मान w1 और w2 प्राप्त करने का प्रयास कर रहा हूं और ऊपर दिए गए कोड अन्य मानों को खत्म करने का एक तरीका है जहां लक्ष्य मान एक्स-अक्ष शिखर है जिसमें तारांकन चिह्न है और उन मानों की खोज करता है जो एक्स के करीब हैं- एक निश्चित सहिष्णुता के साथ अक्ष मूल्य। मैं चाहता हूं कि कोड खोजा जाए और मुझे बूलियन परिणाम देने के बजाय मुझे वे मान दें जो चोटी के करीब हैं। प्रतिच्छेदन मान शिखर स्थान के साथ नीचे हैं।

Amplitude values:  [0.0004046159973339667, 0.0003064079718686719]
Current Amplitude value:  0.0004046159973339667
Current half power amplitude value:  0.00028610671549140587
Current Amplitude value:  0.0003064079718686719
Current half power amplitude value:  0.00021666315471795475

Intersection Values:  [array([11.6705359 , 13.66919925, 21.84434139, 22.53181091, 27.88789357,28.17911233]), array([11.43294083, 14.12791966, 21.28003529, 23.43686901, 27.50441635,28.79179351])]

4 संपादित करें

मैं निम्नलिखित कोड काम किया:

def check_x_axis_list(comp_list, target_value, tolerance):
    x_axis_result = []
    for x in range(0, len(comp_list)):
        if comp_list[x] >= (target_value - tolerance) and comp_list[x] <= (target_value + tolerance):
            x_axis_result.append(comp_list[x])
    return x_axis_result

तथा

def check_x_axis_list(comp_list, target_value, tolerance):
    x_axis_result = [val for val in comp_list if abs(val - target_value) < tolerance]
    return x_axis_result

हालांकि, मेरा एकमात्र संघर्ष यह है कि एक्स-अक्ष आयाम मूल्य के करीब मूल्यों को प्राप्त करने के लिए सहिष्णुता मूल्य के साथ हेरफेर कैसे किया जाए क्योंकि जब यह 28 पर आया तो यह केवल दूसरे चोटी के चौराहे और तीसरे चोटी के चौराहे को प्रिंट करता है। तीसरा शिखर चौराहा। नीचे दी गई समस्या देखें:

Intersection: [11.6705359 , 13.66919925, 21.84434139, 22.53181091, 27.88789357, 28.17911233]
Current x-axis Peak Amplitude value:  13.0
28.17911232801107
11.670535903774892
8.254288212118087
[11.670535903774892, 13.66919924780022]
Intersection: 11.43294083, 14.12791966, 21.28003529, 23.43686901, 27.50441635, 28.79179351]
Current x-axis Peak Amplitude value:  28.0
28.791793514060206
11.432940831732218
8.679426341163994
[21.280035294406446, 23.436869009131495, 27.504416349364988, 28.791793514060206]
-1
Mojo 25 अगस्त 2019, 22:55

1 उत्तर

आप इसे आजमा सकते हैं:

print(np.array(mylist)[result])

आउटपुट:

array([3.1251, 2.1242, 2.5452, 2.1254])
0
JL2210 26 अगस्त 2019, 00:57