我正在尝试使用2个列表和1个numpy.ndarray
函数进行trapz集成。它不起作用,我也无法确定是否需要将列表转换为其他数据类型。我很高兴实际的功能是正确的,但是我不确定如何进行?
该函数是:
BB_flux = trapz((1./lamz)*flux*T,x=lamz)/trapz((1./lamz)*T,x=lamz)
其中
T
和lamz
是列表,而flux
是我通过插值制作的ndarray。T
和lamz
都是通过读取csv文件,然后将值作为浮点值附加到T
和lamz
来制成的。 最佳答案
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/