6

私の質問に基づいて、 大きなnumpy配列の値を概算する最も速い方法は? 必要に応じて配列を分割する方法を探していました。並べ替えられた配列(2D、1つの列の値で並べ替えられた)があり、それを複数の配列に分割したいと思います。インデックスに基づく長さは同じではありませんが、値の範囲は同じです。私が見つけた最も近い質問は 、numpyの値で配列を分割 することですが、少し違うことをしたいと思います。私が持っていると言う(1Dの例):

[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]
4

1 に答える 1

7

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. ]])]
于 2012-08-01T20:37:58.690 に答える