Eternalyz 2023-07-14 21:09 采纳率: 100%
浏览 10
已结题

python中powerlaw包使用的一个小问题

我想使用powerlaw中的cdf输出指定位置处的cdf值,为什么无法指定,不管怎么设置,都是输出全部的值。另外这个输出的值是怎样的选取依据。以下面的代码为例:

import powerlaw
import matplotlib.pyplot as plt
import numpy as np

data = np.random.rand(1000)
fit = powerlaw.Fit(data)
fit.plot_cdf(color='b')
# plt.show()
print(fit.cdf(0.5001))

比如我只想要0.5001处的cdf值,但输出结果如下:

(array([3.148578

```
30e-05, 1.00424785e-03, 1.77426545e-03, 2.18134633e-03,
2.61699392e-03, 2.91282649e-03, 3.11729318e-03, 3.78584487e-03,
。。。。太长省略。。。
9.96377403e-01, 9.97873816e-01, 9.98155576e-01, 9.98299553e-01,
9.99012254e-01, 9.99445801e-01, 9.99565465e-01, 9.99579194e-01]),
array([0. , 0.001, 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008,
0.009, 0.01 , 0.011, 0.012, 0.013, 0.014, 0.015, 0.016, 0.017,
。。。。太长省略。。。
0.981, 0.982, 0.983, 0.984, 0.985, 0.986, 0.987, 0.988, 0.989,
0.99 , 0.991, 0.992, 0.993, 0.994, 0.995, 0.996, 0.997, 0.998,
0.999]))

```python

虽然这可能会包含我想要的值,但有没有办法控制呢。先谢过各位。

  • 写回答

2条回答 默认 最新

  • 田猿笔记 2023-07-14 23:02
    关注

    根据你提供的代码和输出,我注意到你使用的是 powerlaw 库。然而,powerlaw 库的 cdf() 方法并不接受指定位置的参数,它返回的是完整的累积分布函数(CDF)的数据。

    如果你只想获取特定位置处的 CDF 值,你可以使用 powerlaw 库中的 cdf() 方法返回的完整数据,然后根据位置索引来获取对应的值。

    以下是修改后的示例代码,以获取特定位置(例如 0.5001)处的 CDF 值:

    import powerlaw
    import matplotlib.pyplot as plt
    import numpy as np
    
    data = np.random.rand(1000)
    fit = powerlaw.Fit(data)
    fit.plot_cdf(color="b")
    
    cdf_data = fit.cdf()  # 获取完整的 CDF 数据
    position = 0.5001  # 要获取 CDF 值的位置
    
    # 根据位置索引获取对应的 CDF 值
    index = np.where(cdf_data[1] == position)[0][0]
    cdf_value = cdf_data[0][index]
    print(cdf_value)
    

    在这个修改后的代码中,fit.cdf() 返回完整的 CDF 数据,其中 cdf_data[0] 是 CDF 值的数组,cdf_data[1] 是对应的位置数组。我们使用 np.where() 函数来获取指定位置的索引,然后从 cdf_data[0] 中获取对应的 CDF 值。

    请注意,由于使用随机数据生成,每次运行代码都会得到不同的结果,因此你可能需要运行多次以获取正确的结果。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月22日
  • 已采纳回答 7月14日
  • 创建了问题 7月14日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集