gpt4 book ai didi

python - 使用索引数组 (Python) 将 numpy 数组分成多个数组

转载 作者:太空宇宙 更新时间:2023-11-03 12:44:26 25 4
gpt4 key购买 nike

我有一个数组:

a = [1, 3, 5, 7, 29 ... 5030, 6000]

这个数组是从之前的过程中创建的,数组的长度可能不同(这取决于用户输入)。

我还有一个数组:

b = [3, 15, 67, 78, 138]

(也可以完全不同)

我想用数组b将数组a分割成多个数组。

更具体地说,我希望结果数组是:

array1 = a[:3]
array2 = a[3:15]
...
arrayn = a[138:]

其中 n = len(b)

我的第一个想法是创建一个维度为 (len(b), something) 的二维数组 slices。然而,我们事先并不知道这个something,所以我给它赋值len(a),因为这是它可以包含的最大数字量。

我有这个代码:

 slices = np.zeros((len(b), len(a)))

for i in range(1, len(b)):
slices[i] = a[b[i-1]:b[i]]

但是我得到这个错误:

ValueError: could not broadcast input array from shape (518) into shape (2253412)

最佳答案

您可以使用 numpy.split :

np.split(a, b)

示例:

np.split(np.arange(10), [3,5])
# [array([0, 1, 2]), array([3, 4]), array([5, 6, 7, 8, 9])]

关于python - 使用索引数组 (Python) 将 numpy 数组分成多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43944817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com