gpt4 book ai didi

python - 在多个值处拆分 numpy 数组?

转载 作者:太空狗 更新时间:2023-10-30 00:00:03 24 4
gpt4 key购买 nike

根据我的问题 Fastest way to approximately compare values in large numpy arrays?我一直在寻找根据需要拆分数组的方法。我有一个排序数组(2D,按一列中的值排序),并想将其拆分为多个数组。基于索引的长度不相等,但值范围相等。我发现的最接近的问题是 Split array at value in numpy但我想做些不同的事情。假设我有(一维示例):

[0.1, 3.5, 6.5, 7.9, 11.4, 12.0, 22.3, 24.5, 26.7, 29.9]

我想把它分成 [0,10) [10,20) [20,30] 范围,这样它就变成了

[0.1, 3.5, 6.5, 7.9] [11.4, 12.0] [22.3, 24.5, 26.7, 29.9]

最佳答案

1d 的情况可以这样做

>>> A = np.array([0.1, 3.5, 6.5, 7.9, 11.4, 12.0, 22.3, 24.5, 26.7, 29.9])
>>> split_at = A.searchsorted([10, 20])
>>> B = numpy.split(A, split_at)

如果我正确理解你的问题,这在 2d 中也适用,例如:

>>> A = array([[  0.1,   0. ],
[ 3.5, 1. ],
[ 6.5, 2. ],
[ 7.9, 3. ],
[ 11.4, 4. ],
[ 12. , 5. ],
[ 22.3, 6. ],
[ 24.5, 7. ],
[ 26.7, 8. ],
[ 29.9, 9. ]])
>>> split_at = A[:, 0].searchsorted([10, 20])
>>> B = numpy.split(A, split_at)
>>> B
[array([[ 0.1, 0. ],
[ 3.5, 1. ],
[ 6.5, 2. ],
[ 7.9, 3. ]]),
array([[ 11.4, 4. ],
[ 12. , 5. ]]),
array([[ 22.3, 6. ],
[ 24.5, 7. ],
[ 26.7, 8. ],
[ 29.9, 9. ]])]

关于python - 在多个值处拆分 numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11767139/

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