首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态范围的多个停止和步长值

动态范围的多个停止和步长值
EN

Stack Overflow用户
提问于 2022-06-30 13:14:39
回答 2查看 55关注 0票数 1
代码语言:javascript
复制
step = [0.1,0.2,0.3,0.4,0.5]

static = []
for x in step:
   range = np.arrange(5,10 + x, x)
   static.append(range)
# this return a list that looks something like this [[5.,5.1,5.2,...],[5.,5.2,5.4,...],[5.,5.3,5.6,...],...]

我试图创建标准和动态停止/步骤范围从5.0-10。对于标准范围,我在步骤中使用了一个列表,然后循环得到不同的间隔列表。

我现在想要的是在5.0-10.0区间内得到不同的步长。例如,从5.0到7.3,步骤大小是0.2,从7.3到8.3,范围是0.5,然后从8.3到10.0,让我们说步骤是0.8。我不明白的是如何使动态运行并获得所有可能的组合。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-30 13:27:51

使用步骤列表和用于确定每个np.arange的起点和终点的“里程碑”列表,我们可以这样做:

代码语言:javascript
复制
import numpy as np

def dynamic_range(milestones, steps) -> list:
    start = milestones[0]
    dynamic_range = []
    for end, step in zip(milestones[1:], steps):
        dynamic_range += np.arange(start, end, step).tolist()
        start = end
    return dynamic_range

print(dynamic_range(milestones=(5.0, 7.3, 8.3, 10.0), steps=(0.2, 0.5, 0.8)))
# [5.0, 5.2, 5.4, 5.6, 5.8, 6.0, 6.2, 6.4, 6.6, 6.8, 7.0,
#  7.2, 7.3, 7.8, 8.3, 8.3, 9.1, 9.9]

关于性能的注意事项:这个答案假设你将在你的动态范围内使用几百点。如果您想要数以百万计的点数,我们应该尝试另一种方法,即纯numpy和无列表连接。

票数 2
EN

Stack Overflow用户

发布于 2022-06-30 13:28:36

如果您想在<5,10>间隔内完成,那么不要将x添加到10中:

代码语言:javascript
复制
import numpy as np

step = [0.1, 0.2, 0.3, 0.4, 0.5]

static = []
for x in step:
   range = np.arange(5, 10, x)
   static.append(range)

print(static)

迪纳米:

代码语言:javascript
复制
import numpy as np

step = [0.1, 0.2, 0.3, 0.4, 0.5]
breakingpoints=[6,7,8,9,10]
dinamic = []
i=0
startingPoint=5
for x in step:
    #print(breakingpoints[i])
    range = np.arange(startingPoint, breakingpoints[i], x)
    dinamic.append(range)
    i+=1
    #print(range[-1])
    startingPoint=range[-1]
print(dinamic)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72816493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档