Nicht gegossen-array-Daten von dtype('O') , dtype('float64')

Ich bin mit scipy ist curve_fit zu passen, eine Funktion, um einige Daten, und Sie erhalten die folgende Fehlermeldung;

Cannot cast array data from dtype('O') to dtype('float64') according to the rule 'safe'

welche Punkte mich zu dieser Zeile in meinem code;

popt_r, pcov = curve_fit(
                    self.rightFunc, np.array(wavelength)[beg:end][edgeIndex+30:], 
                    np.dstack(transmitted[:,:,c][edgeIndex+30:])[0][0],
                    p0=[self.m_right, self.a_right])

rightFunc wie folgt definiert ist;

def rightFunc(self, x, m, const):

    return np.exp(-(m*x + const))

Wie ich es verstehe, die " O " - Typ bezieht sich auf ein python-Objekt, aber ich kann nicht sehen was diesen Fehler verursacht.

Vollständige Fehlermeldung:

Nicht gegossen-array-Daten von dtype('O') , dtype('float64')

Irgendwelche Ideen, was ich prüfen sollte man die Unterseite dieses?

Was ist der Typ von wavelength? Sie haben es eingewickelt in einem Aufruf np.array(), so nehme ich an, es ist nicht ein numpy-array bereits. Vermutlich ist es eine Art von container (python-Liste? Pandas DataFrame oder Series? Etwas anderes?). Was bedeutet die Daten in wavelength Aussehen? Auch Fragen, die gleichen Fragen zu transmitted.
die Wellenlänge ist eine python-Liste von floats übertragen ist ein 3d-numpy array (gebaut von numpy.Nullen und dann ausgefüllt später)
Haben Sie versucht, Gießen Sie die array-Typ zu float mit .astype(float)? das ist mein problem gelöst. mehr info hier.

InformationsquelleAutor jm22b | 2016-09-12

Schreibe einen Kommentar