【问题标题】:Interval Partitioning of [0,1] [closed][0,1]的区间分区[关闭]
【发布时间】:2020-08-25 11:12:21
【问题描述】:

,我想在 Python 3 中将 [0,1] 分区为长度为 0.05 的相等分区。

【问题讨论】:

  • 什么?请正确改写问题。提问请参考here
  • 你的帖子比你想象的要模糊得多。 “将 [0,1] 分区为长度为 0.05 的相等分区”对您来说似乎很清楚,但实际上可以用很多不同的方式来解释它,具体取决于您要构建的数据结构类型或控制类型您想要达到的流程。
  • 也许您的意思是 [0,1] 的闭区间?
  • 如果您无法看到歧义,请尝试告诉我们更多上下文。这种分区的目的是什么?
  • 我已经生成了 10000 个伪随机数。我想将此区间划分为等长区间,并查看生成了多少随机数,落在每个分区中。我将上传这个问题的图片。谢谢。

标签: python python-3.x partitioning partition


【解决方案1】:

列表理解+range()

result = [x / 100 for x in range(0, 101, 5)]

输出

[0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0]

此外,如果您需要在点后将所有数字格式化为 2 位数字,那么您可以这样做:"{:.2f}".format(x / 100) 而不仅仅是 x / 100


编辑:为了获得 0.05 的每个区间——即:(0 ; 0.05)、(0.05 ; 0.1) 等等——在列表中,我们可以使用元组如下:

result = [(x / 100, (x + 5) / 100) for x in range(0, 100, 5)]

哪些输出:

[(0.0, 0.05), (0.05, 0.1), (0.1, 0.15), (0.15, 0.2), (0.2, 0.25), (0.25, 0.3), (0.3, 0.35), (0.35, 0.4), (0.4, 0.45), (0.45, 0.5), (0.5, 0.55), (0.55, 0.6), (0.6, 0.65), (0.65, 0.7), (0.7, 0.75), (0.75, 0.8), (0.8, 0.85), (0.85, 0.9), (0.9, 0.95), (0.95, 1.0)]

【讨论】:

  • [*] 毫无意义。您可以直接迭代一个范围。
  • 是的,我先尝试了一些不同的东西。固定的。 @user2357112支持莫妮卡
  • 感谢您的宝贵时间,我怎样才能让它像 [0, 0.05) [0.05, 0.1) [0.1, 0.15) 等单独的间隔?
  • 没问题,让我更新我的答案。
【解决方案2】:

使用 numpy.linspace 将范围分成相等的部分

from numpy import linspace

r =[0,1]
slice_size = 0.05

# determine # of slices
n_slices =int((max(r)-min(r))/slice_size +1)
# split the range
print(linspace(*r, n_slices))

【讨论】:

    猜你喜欢
    • 2013-06-04
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2014-04-21
    • 2016-01-01
    • 1970-01-01
    相关资源
    最近更新 更多