python - Split an array in all possible combinations (not regular splitting) -
please read question before down voting. not find problem in other questions here.
suppose have array,
>>> import numpy np >>> array = np.linspace(1,4,4, dtype=np.int) >>> array array([1, 2, 3, 4])
i want function split array in possible parts, such that,
no split :
([1,2,3,4])
split in 2
parts :
([1], [2,3,4]) ([1,2], [3,4]) ([1,2,3] ,[4])
split in 3
parts :
([1], [2], [3,4]) ([1,2]), [3], [4]) ([1], [2,3], [4])
split in len(array)
parts :
([1],[2],[3],[4])
i know there np.split(array, r)
, not give possible splits. e.g. np.split(array, 2)
give,
[array([0, 1]), array([2, 3])]
as can see not need. how achieve need?
you use itertools.combinations
generate indices split inside loop on number of splits:
>>> itertools import combinations >>> [np.split(array, idx) ... n_splits in range(5) ... idx in combinations(range(1, len(array)), n_splits)] [[array([1, 2, 3, 4])], [array([1]), array([2, 3, 4])], [array([1, 2]), array([3, 4])], [array([1, 2, 3]), array([4])], [array([1]), array([2]), array([3, 4])], [array([1]), array([2, 3]), array([4])], [array([1, 2]), array([3]), array([4])], [array([1]), array([2]), array([3]), array([4])]]
Comments
Post a Comment