将numpy数组拆分为多个值?

numpy数组按值范围拆分
本文介绍如何按值范围拆分numpy数组。作者提供了一个一维案例的解决方案,并指出该方法同样适用于二维数组,例如将数组拆分为[0,10), [10,20), [20,30]这样的范围。" 106902167,9792463,C++/C实现香农编码,"['C++编程', '编码理论', '信息论', '数据处理']

根据我的问题, 最快的方法来近似比较大型numpy数组中的值? 我一直在寻找想要拆分数组的方法。我有一个排序数组(2D,按一列中的值排序),并想将其拆分为多个数组。不是基于索引的长度相等,而是值的范围相等。我发现的最接近的问题是将 数组拆分为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]

解决方案

一维案例可以这样完成

-------欢迎加入python学习交流扣扣裙851211580-------
>>> 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开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以在后台私信小编:“01”,即可领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值