将numpy数组转换为包含6个元素的列表,在python中每次值都要移动一个位置



我有一个numpy数组值的数据集

array([0.74, 0.77, 0.72, 0.65, 0.24,
0.07,0.79,0.88])

我想将numpy数组转换为包含6个元素的列表,其中每次值都应该在python中移动一个位置

这是我想要的列表的列表。

[[0.74, 0.77, 0.72, 0.65, 0.24,0.07],[0.77, 0.72, 0.65, 0.24, 0.07,0.79],[0.72, 0.65, 0.24,
0.07,0.79,0.88]]

因此,不清楚要移动数组多少次,以及为什么结果子列表的长度是这样的。但是只用numpy.roll。大意是:

result = [np.roll(arr, -i)[:-2].tolist()  for i in range(3)]

根据@hpaulj的评论,我认为你想要这样的东西:

n = 6 # some paramter
result = [arr[i:i+n].tolist() for i in range(len(arr) - n + 1)]

最新更新