我正在尝试使用2个列表和1个numpy.ndarray函数进行trapz集成。它不起作用,我也无法确定是否需要将列表转换为其他数据类型。我很高兴实际的功能是正确的,但是我不确定如何进行?

该函数是:

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


其中Tlamz是列表,而flux是我通过插值制作的ndarray。

Tlamz都是通过读取csv文件,然后将值作为浮点值附加到Tlamz来制成的。

最佳答案

Python不支持列表中的算术运算(/,*,+,-)。
运算符+和*是列表操作。

由于使用numpy,因此可以将列表转换为numpy数组。

如果要将lamz和T保留为列表,可以使用

w = numpy.asarray(T)/numpy.asarray(lamz)
BB_flux = trapz(w*flux,x=lamz)/trapz(w,x=lamz)

关于python - Python:TypeError:/:'float'和'list'不受支持的操作数类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26948931/

10-12 05:52