首页 > 解决方案 > ** 或 pow() 不支持的操作数类型:“list”和“int”

问题描述

def radiance(l,T):
    l=l*(10**(-10))
    const=2*h*pi*(c**2)
    const2=(h*c)/(k*T)
    d=expo(const2/l)-1
    f=const/(d*(l**5))
    return f*10**11

def colour(T):
    color=(-1)*2.5*math.log(radiance(4400,T)/radiance(5500,T))
    return color

t=numpy.arange(10,1000)
plt.plot(t,colour(t)
plt.show()

现在我知道我不能将列表传递给上述函数颜色。但是当我将一个 numpy 数组传递给函数 radiance 时它会起作用,它给了我一个正确的情节。但是,当我将数组 t 传递给颜色函数时,它告诉我错误是由于辐射函数引起的,这让我感到困惑。

<ipython-input-105-0025fb9b0ac1> in radiance(l, T)
      1 def radiance(l,T):
      2     l=l*(10**(-`enter code here`10))
----> 3     const=2*h*pi*(c**2)
      4     const2=(h*c)/(k*T)
      5     d=expo(const2/l)-1

我试图矢量化第二个函数,但我得到了同样的错误

标签: pythonnumpy-ndarray

解决方案


推荐阅读