У меня есть 2D-массив, содержащий значения, и 1D-массив со значениями индекса, где я хотел бы разбить 2D-матрицу, где разделенные подмассивы включают «точку разделения».
Я знаю, что могу использовать функцию numpy.split
для разделения по индексам, и я знаю, что я могу использовать stride_tricks
, чтобы разделить массив для создания последовательных перекрывающихся подмножеств.
Но, похоже, stride_ticks
применяется только в том случае, если мы хотим разбить массив на подмассивы одинакового размера.
Минимальный пример, я могу сделать следующее:
>>> import numpy as np
>>> array = np.random.randint(0,10, (10,2))
>>> indices = np.array([2,3,8])
>>> array
array([[8, 1],
[1, 0],
[2, 0],
[8, 8],
[1, 6],
[7, 8],
[4, 4],
[9, 4],
[6, 7],
[6, 4]])
>>> split_array = np.split(array, indices, axis=0)
>>> split_array
[array([[8, 1],
[1, 0]]),
array([[2, 0]]),
array([[8, 8],
[1, 6],
[7, 8],
[4, 4],
[9, 4]]),
array([[6, 7],
[6, 4]])]
Но я просто ищу параметр в функции split
, где я мог бы определить include_split_point=True
, который дал бы мне такой результат:
[array([[8, 1],
[1, 0],
[2, 0]]),
array([[2, 0],
[8, 8]]),
array([[8, 8],
[1, 6],
[7, 8],
[4, 4],
[9, 4],
[6, 7]]),
array([[6, 7],
[6, 4]])]