Python: TypeError: unsupported operand type(s) de /: 'float' et 'liste'

Je suis en train de faire un trapz de l'intégration, avec une fonction à l'aide de 2 listes et 1 numpy.ndarray. Elle ne fonctionne pas, et je ne peux pas savoir si j'ai besoin de convertir mes listes à un autre type de données. Je suis heureux que la fonction est correcte, mais je ne suis pas sûr de savoir comment procéder?

La fonction est:

BB_flux = trapz((1./lamz)*flux*T,x=lamz)/trapz((1./lamz)*T,x=lamz)

T et lamz sont des listes et des flux est un ndarray que j'ai fait par interpolation.

Les deux T et lamz sont faites par la lecture à partir d'un fichier csv, puis en ajoutant les valeurs de T et lamz flotteurs.

  • Le message d'erreur est assez clair sur le problème - qu'attendiez-vous de l'issue, par exemple, de 1./lamz être?
  • Im censé simplement obtenir un grand nombre comme la valeur de BB_flux. Est-il un type de données qui trapz préfère? car aucun des autres variables sont des flotteurs donc je ne suis pas sûr de savoir comment l'erreur est
  • Vous essayez de diviser la valeur 1. par une banale liste python, ce qui n'est pas pris en charge. Vous attendiez-vous à le résultat sera une liste de chars? Pour les atteindre, vous devez utiliser une liste de compréhension: [1./x for x in lamz].
  • Je suis d'accord avec @ekhumoro. Sinon, vous pouvez faire lamz = np.array(lamz) avant la ligne, alors vous n'avez pas besoin de changer cela. Mais @ekhumoro la solution est plus propre!