给定两个日期时间,例如2020-01-01 00:00:00和2020-04-01 00:00:00,我想获取两个日期之间的时间增量(以小时数表示)以及由于夏令时而进行的任何加/减。我不知道如何继续。
我对纸浆完全陌生,想知道是否需要优化以下内容:
x = pulp.LpVariable.dicts("Volume", range(0, 7), cat='Binary')
Run Code Online (Sandbox Code Playgroud)
其中只要有 0,则至少需要有 3 个。
所以解可以是 [0,0,0,0,0,0,1], [0,0,0,1,0,0,0], [1,1,1,0,0,0, 1] 但不是 [1,0,1,0,1,0,0]。
我尝试添加一个约束,如下所示:
prob += min([len(list(g)) for k, g in itertools.groupby(x.values()) if k == 0]) >= 3
Run Code Online (Sandbox Code Playgroud)
但没有成功。
我该如何表述呢?
我想要一些可以拆分一维数组的东西:
np.array([600, 400, 300, 600, 100, 0, 2160])
基于一个值(例如 500)转换成一个二维数组,这样结果数组应该看起来像
500 | 100 | 0 | 0 | 0
400 | 0 | 0 | 0 | 0
300 | 0 | 0 | 0 | 0
500 | 100 | 0 | 0 | 0
100 | 0 | 0 | 0 | 0
0 | 0 | 0 | 0 | 0
500 | 500 | 500 | 500 | 160
Run Code Online (Sandbox Code Playgroud)
我们从左边填写可能有多少个 500,最后一个作为提醒。
我正在考虑使用 np.divmod() 但不知道如何构造数组本身。