expected a sequence of integers or a single integer

def sim_gamma(lambda_, time, k):
    t = np.random.uniform(0, time, size=lambda_ * time) #❶
    t.sort()  #❷
    interval = t[k:] - t[:-k] #❸
    dist, interval_edges = np.histogram(interval, bins=100, density=True) #❹
    x = (interval_edges[1:] + interval_edges[:-1])/2  #❺
    gamma = stats.gamma.pdf(x, k, scale=1.0/lambda_) #❺
    return x, gamma, dist

lambda_ = 10.0
time = 1000
ks = 1, 2
x1, gamma1, dist1 = sim_gamma(lambda_, time, ks[0])
x2, gamma2, dist2 = sim_gamma(lambda_, time, ks[1])
#%hide
fig, (ax1, ax2) = pl.subplots(1, 2, figsize=(7.5, 2.5))

ax1.plot(x1, dist1,  lw=2, label="统计结果")
ax1.plot(x1, gamma1, lw=2, label="伽玛分布", color="red", alpha=0.6)
ax2.plot(x2, dist2,  lw=2, label="统计结果")
ax2.plot(x2, gamma2, lw=2, label="伽玛分布", color="red", alpha=0.6)

for ax, k in zip((ax1, ax2), ks):
    ax.set_xlabel("时间间隔")
    ax.set_ylabel("概率密度")
    ax.set_title("k = {}".format(k))
    ax.legend(loc="upper right")
    
fig.subplots_adjust(0.1, 0.15, 0.95, 0.90, 0.2, 0.1);

这个错误通常发生在期望接收整数序列或单个整数的情况下,但实际上传递了一个浮点数。

要解决这个问题,你可以尝试以下几种方法:

  1. 确保你的输入是整数类型。检查你的代码,确保你传递给期望整数的函数的参数是整数类型。如果你的输入是浮点数,你可以使用int()函数将其转换为整数。

  2. 检查你的数据类型。使用type()函数检查你的数据类型,确保你的数据是整数类型。如果不是,你可以使用int()函数将其转换为整数。

  3. 检查你的数据源。如果你的数据来自外部源,例如文件或网络请求,确保你正确解析和处理数据,并将其转换为整数类型。

  4. 检查你的函数参数。如果你正在调用一个函数,并且传递了一个浮点数作为参数,确保该函数期望接收整数类型的参数。如果不是,你可以尝试将浮点数转换为整数,或者查找接受浮点数参数的函数。

x1, gamma1, dist1 = sim_gamma(lambda_, time, ks[0])
x2, gamma2, dist2 = sim_gamma(lambda_, time, ks[1])

更改为

x1, gamma1, dist1 = sim_gamma(int(lambda_), time, ks[0])
x2, gamma2, dist2 = sim_gamma(int(lambda_), time, ks[1])

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值