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 不是函数”

使用 Promise 在 Angular 和 Ionic 的页面上显示用户信息时出现以下错误

js中斐波拉切数的三种写法;

Cherrypy中的RESTful Web服务示例

无法使用 JPype 重载 android.content.Context