web-dev-qa-db-fra.com

trouver une valeur minimale dans un tableau de flottants

comment pourrait-on trouver la valeur minimale dans un tableau de 100 floats en python? J'ai essayé minindex=darr.argmin() et print darr[minindex] avec import numpy (darr est le nom du tableau)

mais j'obtiens: minindex=darr.argmin()

AttributeError: 'list' object has no attribute 'argmin'

quel pourrait être le problème? Y a-t-il une meilleure alternative?

merci d'avance

24
pjehyun

Python a une fonction min() intégrée :

>>> darr = [1, 3.14159, 1e100, -2.71828]
>>> min(darr)
-2.71828
54
Greg Hewgill

Si vous voulez utiliser numpy, vous devez définir darr comme étant un tableau numpy, pas un list:

import numpy as np
darr = np.array([1, 3.14159, 1e100, -2.71828])
print(darr.min())

darr.argmin() vous donnera l'indice correspondant au minimum.

La raison pour laquelle vous obteniez une erreur est parce que argmin est une méthode comprise par les tableaux numpy, mais pas par Python lists.

21
unutbu

Vous devez itérer le tableau 2d pour obtenir la valeur minimale de chaque ligne, puis repousser toute valeur minimale obtenue dans un autre tableau et, enfin, vous devez obtenir la valeur minimale du tableau où chaque valeur de ligne minimale a été poussée.

def get_min_value(self, table):
    min_values = []
    for i in range(0, len(table)):
        min_value = min(table[i])
        min_values.append(min_value)

    return min(min_values)
0
Pedro Machado