Im mit folgendem Problem stecken:Die Interpolation fehlende Werte useing np.interp
einen anderen Code Mit i-Dateien erzeugen, die x- und y-Werte, Frequenzen und Intensitäten erzeugen. Ich benutze 2 verschiedene Methoden und folglich 2 verschiedene Sätze von x, y. Die Idee ist, den einen mit dem anderen zu normieren, um einen normalisierten Fluss zu erhalten. Der Hilfscode verwendet jedoch unterschiedliche Abtastraten, da er seine Rate automatisch anpasst. Eine Normalisierung ist daher nicht möglich, da die Größen unterschiedlich lang sind!
Lösung interpolieren die fehlenden Werte. Der geeignetste Weg, den ich gefunden habe, ist mit np.interp. Well:
Heres mein Code:
#Freq2_f1 is the frequency of File 1 - high sampling rate
#Freq2_f2 is frequency of File2 - low sampling rate
#Inten2_f1 is intensity of File1 - high sampling rate
#Inten2_f2 is intensity of File 2 - low sampling rate
Freq_f2=filearray2[0:num2-3]
Freq1_f2 = list(itertools.chain.from_iterable(Freq_f2))
Freq2_f2=np.array(map(float,Freq1_f2))
Inten_f2=filearray2[num2+1:len(filearray2)]
Inten1_f2 = list(itertools.chain.from_iterable(Inten_f2))
Inten2_f2=np.array(map(float,Inten1_f2))
Inten_int=np.interp(Freq2_f1,Freq2_f2,Inten2_f2)
#Inten_int=griddata(Freq2_f2,Inten2_f2,Freq2_f1,method='linear')
print
print 'Input frequency=highly sampled frequency'
print(Freq2_f1)
print 'Length of input frequency',len(Freq2_f1)
print 'Frequency of less sampled data'
print(Freq2_f2)
print 'Length of less sampled intensity', len(Freq2_f1)
print 'Intensity of less sampled data'
print(Inten2_f2)
print 'Length of less sampled frequency', len(Freq2_f2)
print 'Output array of np.interp '
print(Inten_int)
print 'Length of interpolated intensity', len(Inten_int)
Dies ist, was es ergibt: , wie Sie die Ausgabe-Array sehen Inten_int ist nur eine Konstante von 1.051e-02!
Input frequency=highly sampled frequency
[ 6.87718000e+01 6.86571000e+01 6.85425900e+01 ..., 3.92414600e-03
3.91760100e-03 3.56145800e-03]
Length of input frequency 9576
Frequency of less sampled data
[ 6.87718000e+01 6.86571000e+01 6.85425900e+01 ..., 3.92347200e-03
3.91692900e-03 3.56145800e-03]
Length of less sampled frequency 5857
Intensity of less sampled data
[ 1.02640000e-36 1.20500000e-36 1.42720000e-36 ..., 1.19530000e-02
1.19260000e-02 1.05100000e-02]
Length of less sampled intensity 5857
Output array of np.interp
[ 1.05100000e-02 1.05100000e-02 1.05100000e-02 ..., 1.05100000e-02
1.05100000e-02 1.02640000e-36]
Length of interpolated intensity 9576
Ich habe keine Ahnung warum! Die Werte der Frequenzen (eintönig) wie gefordert durch np.interp zunehmende
Ich entschuldige mich die Variablen für die Benennung dieses crappy :(
Thank you! Das war das Problem .. manchmal sieht man nicht das Offensichtliche :( – Sebastiano1991