首页 > 解决方案 > 如何根据 Numpy 中另一个数组的分组值生成一个数组?

问题描述

可以说我有以下数组:

`Z = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]`

我想生成一个如下所示的数组:

R = [[1,2,3,4], [2,3,4,5], [3,4,5,6], ..., [11,12,13,14]]

NumPy 如何做到这一点?

标签: pythonnumpynumpy-ndarray

解决方案


这个怎么样?

from numpy.lib import stride_tricks
Z = np.arange(1,15,dtype=np.uint32)
R = stride_tricks.as_strided(Z,(11,4),(4,4))
print(R)

输出:

[[ 1  2  3  4]
 [ 2  3  4  5]
 [ 3  4  5  6]
 [ 4  5  6  7]
 [ 5  6  7  8]
 [ 6  7  8  9]
 [ 7  8  9 10]
 [ 8  9 10 11]
 [ 9 10 11 12]
 [10 11 12 13]
 [11 12 13 14]]

正如navneethc正确指出的那样,应谨慎使用此功能。


推荐阅读