我试图遍历两个窗口linspace的乘积,以探索一个空间。当我包含端点时,我似乎失去了linspace的精度。我会以某种方式乱码吗?是否有一些numpy可以做到这一点?
这是一些演示代码。我更新了numpy以期寻求修复,但这没有帮助(1.16.4,python 3.7.3)。
import numpy as np
import itertools
# Windowing func from old itertools docs
def window(seq, n=2):
"Returns a sliding window (of width n) over data from the iterable"
" s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ... "
it = iter(seq)
result = tuple(itertools.islice(it, n))
if len(result) == n:
yield result
for elem in it:
result = result[1:] + (elem,)
yield result
for (a,b) in itertools.product(window(np.linspace(12, 13, 10, endpoint=False)), window(np.linspace(20,21,10, endpoint=False))):
print(a, b)
for (a,b) in itertools.product(window(np.linspace(12, 13, 10, endpoint=True)), window(np.linspace(20,21,10, endpoint=True))):
print(a, b)
没有端点:
(12.0, 12.1) (20.0, 20.1)
(12.0, 12.1) (20.1, 20.2)
(12.0, 12.1) (20.2, 20.3)
...
具有端点:
(12.0, 12.11111111111111) (20.0, 20.11111111111111)
(12.0, 12.11111111111111) (20.11111111111111, 20.22222222222222)
(12.0, 12.11111111111111) (20.22222222222222, 20.333333333333332)
...
答案 0 :(得分:0)
您想要的linspace
输出具有 11 元素,但是您要的是10。要求11。