Convertir de liste ou de tableau numpy d'un seul élément de flotter dans python

J'ai une fonction qui peut accepter une liste ou un tableau numpy.

Dans les deux cas, la liste/tableau a un seul élément (toujours). J'ai juste besoin de retour d'un flotteur.

Par exemple, j'ai pu recevoir:

list_ = [4]

ou le tableau numpy:

array_ = array([4])

Et je doit retourner

 4.0

Ainsi, naturellement, (je dirais), j'utilise float(...) sur list_ et obtenez:

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

Je fais la même chose pour array_ et cette fois, il fonctionne en répondant par "4.0". À partir de cela, j'apprends que Python liste ne peut pas être convertie en float de cette façon.

Sur la base du succès avec le tableau numpy conversion float cela m'approche:

float(np.asarray(list_))

Et cela fonctionne quand list_ est à la fois une liste Python et quand c'est un tableau numpy.

Question

Mais il semble que cette approche a une surcharge d'abord la conversion de la liste à un tableau numpy et puis flotter. En gros: Est-il une meilleure manière de faire ceci?

Ne pouvez-vous pas utiliser de découpage: float(list_[0]) = 4.0
soit float(list_[0]) ou float(''.join(list_))

OriginalL'auteur denvar | 2015-05-18