python程序错误:ValueError:使用sequen设置数组元素

2024-06-09 19:50:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python突发检测包链接(https://github.com/nmarinsek/burst_detection/blob/master/README.rst)来尝试结果。但是程序总是有一些错误:ValueError:用序列设置数组元素。 有趣的是,当我删除r数组中大于94的值时,一切正常。第34个元素在[842>;处停止,因为[842 gt]。在

错误的详细信息如下:

C:\Python27\lib\site-packages\burst_detection\__init__.py:29: RuntimeWarning: invalid value encountered in double_scalars
  return -np.log(np.float(c.binomial(d,r)) * (p**r) * (1-p)**(d-r))
Traceback (most recent call last):
  File "burstConstructDataPrepare.py", line 33, in <module>
    q, d, r, p = bd.burst_detection(r,d,n,s=2,gamma=1,smooth_win=1)
  File "C:\Python27\lib\site-packages\burst_detection\__init__.py", line 82, in burst_detection
    q[t] = np.where(cost[t,:] == min(cost[t,:]))
ValueError: setting an array element with a sequence.

源代码:

^{pr2}$

然后我试着只在研发中加入10到20个元素,这很管用。当它有524个元素时,它显示这种错误。 有人知道为什么吗? 谢谢!在


Tags: inpygt元素initlibpackages错误
1条回答
网友
1楼 · 发布于 2024-06-09 19:50:23

看起来是burst_detection包中的一个bug。我不知道那条线应该做什么,但是

q[t] = np.where(cost[t,:] == min(cost[t,:]))

将尝试将左边的q[t]设置为右侧,它是一个单一的数组元素。当只有一个成本等于最小成本时,这种方法很有效,但是当两个州共享相同的最小成本时,右侧的长度为2。要让它只选择其中一个最优状态,您需要将该行更改为

^{pr2}$

您可以通过转到安装包的位置并手动编辑该行来完成此操作。如果您认为包维护人员可以解决这个问题,那么您也可以在GitHub上的跟踪器上打开一个问题。在

相关问题 更多 >