【发布时间】:2017-05-12 20:09:37
【问题描述】:
我是 python 编码的新手
我正在编写一个代码来计算一系列的总和,我首先编写了一个函数,其中输入是总和的迭代次数,但是当我编译它时,它在def G(i) 下的行中给出了错误:仅长度为 1 的数组可以转换为 Python 标量
你能帮帮我吗
import matplotlib.pyplot as plt
import numpy as np
import scipy.special as sp
import pylab as pylab
def G(i):
return (sum(((-1*(2*l+1))/(4*np.pi*(l**2+l)))*sp.legendre(l)(0.5) for l in i))
pylab.ylim([-1,1])
sumrange = np.arange(1,70,1)
plt.plot(sumrange,G(sumrange),color='red')
【问题讨论】:
-
短版:使用
np.sum而不是sum。 -
@aryamccarthy np.sum 不起作用,问题在于我认为的范围输入
-
“不起作用”是什么意思?什么错误?
-
@aryamccarthy 和上面一样的错误,只有长度为1的数组可以转换成Python标量
标签: python matplotlib