我有一个简单的for循环来计算RMS(均方根),它在sigma求和表中定义:
for i in range(int(N-(n*periyot/delta)), N+1):
sum = np.sqrt((1 / N) * (sum((Cl[i]**2))))
然后我得到这个错误:
TypeError: 'numpy.float64' object is not iterable
以下是一些关于我的定义的信息:
N=40000, n=10.0, periyot=6.451290, delta=0.005
Cl=[-21.91969 -12.452671 -7.928303 ..., -0.0833991 -0.0579686
-0.0823822]
复制您的计算,有点简单:
要计算循环中的和,请初始化一个值,并在每次迭代时将其相加:
让
numpy
计算所有内容(略有不同)你的射程有点复杂,但我认为可以适应:
或者
但我想知道你为什么要这么做。你希望平方一个
Cl
值的范围,然后求和?在多个范围内重复?=====
有一条
np.sum
和一条Pythonsum
。Pythonsum
可以很好地处理数字列表,例如由列表理解生成的数字:试图将
sum
应用于单个值时产生的错误:=
表示为:
问题是用
sum
变量覆盖sum
函数。试试这样的:删除
sum
,Cl
的每个元素都是浮点数,因此您不可能对它们调用sum:如果要调用numpy的广播来执行电源操作,则不需要索引数组。
相关问题 更多 >
编程相关推荐