Konvertieren Liste oder numpy-array aus single-element auf float in python

Ich habe eine Funktion, die die Annahme kann entweder eine Liste oder ein numpy-array.

In jedem Fall, die Liste/array hat ein element (immer). Ich muss nur return float.

So, z.B., die ich empfangen konnte:

list_ = [4]

oder die numpy-array:

array_ = array([4])

Und ich zurückkehren sollte,

 4.0

So, natürlich (würde ich sagen), ich benutze float(...) auf list_ und erhalten:

TypeError: float() argument must be a string or a number

Ich das gleiche tun, um array_ und dieses mal hat es funktioniert, indem Sie darauf mit "4.0". Von diesem habe ich erfahren, dass Python-Liste konvertiert werden kann, zu schweben diese Weise.

Basierend auf dem Erfolg mit den numpy-array Konvertierung nach float diese führen mich zu der Fragestellung:

float(np.asarray(list_))

- Und dies funktioniert, wenn list_ ist sowohl eine Python-Liste und wenn es ein numpy-array.

Frage

Aber wie es scheint, hat dieser Ansatz einen overhead-zuerst die Umwandlung der Liste in ein numpy-array und dann zu schweben. Grundsätzlich: gibt es einen besseren Weg, dies zu tun?

  • Können Sie nicht verwenden, schneiden: float(list_[0]) = 4.0
  • entweder float(list_[0]) oder float(''.join(list_))
InformationsquelleAutor denvar | 2015-05-18
Schreibe einen Kommentar