首页 > 解决方案 > 从不同大小的数组中采样每个第 n 个值 Python

问题描述

在我的代码中,我正在尝试编写一种能够从不同大小的数组中采样每个第 n 个数字的方法。说我有:

x = np.linspace(0,1,41)

我想从数组中采样 6 个均匀分布的数字。我知道我可以这样写:

xa = x[0::8]

在整个数组中获取 6 个数字,但是如果数组的大小发生变化,但我仍然想要该数组中的 6 个均匀间隔的数字怎么办?就像 x 数组现在看起来像这样:

x = np.linspace(0,1,26)

我不确定如何编写代码以提取任何可能大小的数组的值。

标签: pythonarraysslice

解决方案


您可以将步长重新定义为len(x)//some value

x=np.linspace(0,1,41)
xa=x[0::len(x)//5]

>>>xa
>>>array([0. , 0.2, 0.4, 0.6, 0.8, 1. ])

推荐阅读