小编pin*_*hio的帖子

Numpy 发现间隔至少有 k 个点

我在间隔中有一些点 [0,20]

我有一个window_size=3可以在上述间隔内移动的大小窗口。因此窗口的开始 - 让我们调用start被限制为[0,17].

假设我们在points下面有一些:

points = [1.4,1.8,   11.3,11.8,12.3,13.2,  18.2,18.3,18.4,18.5]
Run Code Online (Sandbox Code Playgroud)

如果我们想要最少的min_points=4点数,则窗口的起始范围(我手动找到的)的解决方案是:

suitable_starts = [[10.2,11.3],[15.5,17.0]]
Run Code Online (Sandbox Code Playgroud)

即大小3窗口的开始可以是 from 10.2to11.3和 from 15.5to 17.0简单地说+3,窗口的相应结束将只是开始范围

我在寻找一种方式来巧妙的算法覆盖这个快速numpyscipy或其他功能。

我正在寻找的一般功能是:

get_start_windows(interval = [0,20],
    window_size = 3.0, 
    points = [1.4,1.8,11.3,11.8,12.3,13.2,18.2,18.3,18.4,18.5],
    min_points = 4

    return suitable_starts # suitable_starts = [[10.2,11.3],[15.5,17.0]]
Run Code Online (Sandbox Code Playgroud)

笔记:

正如评论中的某人指出的那样,有时当点与 window_size 完全分开时,会出现特殊情况。然而,实际上这些点是双浮点数,它们不可能将 window_size 完全分开,因此可以忽略它们。

这些特殊的例子包括:

points = [1.4,1.8,  11.3,11.8,12.3,13.2,14.2,15.2,16.2,17.2,18.2,18.3,18.4,18.5]
Run Code Online (Sandbox Code Playgroud)

但这些可以安全地忽略。

python numpy scipy

7
推荐指数
1
解决办法
156
查看次数

Numpy 将数组拆分为具有余数的大小相等的块

是否有一个 numpy 函数将数组拆分为大小为 m 的相等块(不包括大小小于 m 的任何余数)。我已经查看了函数np.array_split ,但这并不能让您通过指定块的大小来拆分。

我正在寻找的一个例子如下:

X = np.arange(10)
split (X, size = 3)
-> [ [0,1,2],[3,4,5],[6,7,8], [9] ]

split (X, size = 4)
-> [ [0,1,2,3],[4,5,6,7],[8,9]]

split (X, size = 5)
-> [ [0,1,2,3,4],[5,6,7,8,9]]
Run Code Online (Sandbox Code Playgroud)

python numpy

5
推荐指数
1
解决办法
675
查看次数

标签 统计

numpy ×2

python ×2

scipy ×1