ErlangC 函数应用程序错误 - TypeError: 'numpy.float64' object is not iterable
Posted
技术标签:
【中文标题】ErlangC 函数应用程序错误 - TypeError: \'numpy.float64\' object is not iterable【英文标题】:ErlangC Function Application Error - TypeError: 'numpy.float64' object is not iterableErlangC 函数应用程序错误 - TypeError: 'numpy.float64' object is not iterable 【发布时间】:2021-04-12 18:38:41 【问题描述】:我有以下数据框:
RateService Cashiers
0 19.8 1
1 19.8 1
2 19.8 1
3 19.8 1
4 19.8 1
5 19.8 1
6 19.8 1
7 19.8 1
8 19.8 1
9 19.8 1
10 19.8 1
11 19.8 1
12 19.8 1
13 19.8 1
14 19.8 1
15 19.8 1
16 19.8 1
17 19.8 1
18 19.8 1
19 19.8 1
20 19.8 1
21 19.8 1
22 19.8 1
23 19.8 1
我想创建一个应用以下 ErlangC 函数的新列:
from scipy.special import factorial
def ErlangC(k, r):
H = np.array(list(r))
I = np.array(list(k))
A = np.power(I,H)
B = factorial(H)
C = np.subtract(H,I)
D = np.divide(H,C)
E = np.divide(A,B)
L = E * D
sum_ = 0
for i in H:
F = np.power(k,i)
sum_ += F / factorial(i)
return (L / (sum_ + L))
所以我正在调用函数
df['C(k,r)'] = df.apply(lambda x: ErlangC(x[0], x[1]), axis=1)
El error me lo marca en la siguiente línea:
2 def ErlangC(k, r):
3
----> 4 H = np.array(list(r))
5 I = np.array(list(k))
6 A = np.power(I,H)
TypeError: 'numpy.float64' 对象不可迭代
也许我在将列表集成到数组时应用错误,但如果我删除它,我会遇到 0-d 数组错误。有什么建议吗?
【问题讨论】:
你不能list(numeric)
。你正在尝试做list(1)
,这是不允许的
嗨,你可能想避免阶乘,因为它们增长得非常快并导致数值不准确或足够大的数字,它可能无法计算,相反我建议你使用 ErlangB 和然后使用它的结果来喂 ErlangC。或者你可以使用已经有这个实现的pyworkforce
【参考方案1】:
只需使用[]
从标量创建列表。
H = np.array([r])
I = np.array([k])
【讨论】:
谢谢,结果在列中为我提供了一个列表 [],但我对其进行了调整。这是我的一个概念错误,感谢您纠正我。以上是关于ErlangC 函数应用程序错误 - TypeError: 'numpy.float64' object is not iterable的主要内容,如果未能解决你的问题,请参考以下文章
Mocha API 测试:获取“TypeError:app.address 不是函数”