我有两个 ndarray
对象 a
和 b
。
我想使用数组 a
中提供的索引来拆分 b
,但不是以传统方式(使用numpy.split
)。
具体来说,我想创建从数组 b
的索引开始的多个子数组,将它们称为 b[i]
并以 b[i] + X
,其中 X 是我选择的数字。
示例:
a = [1,4,9]
b = [30, 45, 10, 20, 5, 32, 104, 39, 23, 450, 2, 102, 50]
对于 X=2
,我的 split()
函数将产生以下结果:
[[45,10,20],[5,32,104],[450,2,102]]
我在 numpy 中环顾四周,但还没有找到一种方法来做到这一点。
最佳答案
只需使用切片,如果使用 Python 列表而不是 NumPy 数组,效果是一样的:
a = np.array([1, 4, 9])
b = np.array([30, 45, 10, 20, 5, 32, 104, 39, 23, 450, 2, 102, 50])
X = 3 # Add one extra here
print(np.array([b[i:i+X] for i in a]))
这将打印:
[[ 45 10 20]
[ 5 32 104]
[450 2 102]]
关于python - 使用索引和偏移量分割 ndarray - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44144675/