Разделение неровного массива на основе длины другого списка - PullRequest
0 голосов
/ 23 июня 2019

У меня есть два списка. И мне нужно разделить numpy.ndarray (матрица) на основе длины другого списка списков (позиции). Например:

 position: [[0.0056, 0.0065, 0.008], [0.009, 0.1, 0.127], [0.232, 0.879]]

В этом примере матрица имеет размер (5,8)

  matrix: array([[0, 0, 1, 0, 0, 1, 1, 1],
   [1, 1, 0, 1, 1, 1, 1, 1],
   [0, 1, 0, 1, 0, 1, 0, 1],
   [1, 1, 1, 0, 0, 0, 0, 0],
   [1, 1, 0, 0, 1, 0, 1, 0]])

Так, например, список в первом индексе позиции имеет длину 3. Поэтому я хотел бы сгенерировать вывод, который разрезает матрицу в позиции три. Следовательно, результат для первого списка в позиции будет:

  0, 0, 1
  1, 1, 0
  0, 1, 0
  1, 1, 1
  1, 1, 0

Аналогично, длина списка во втором индексе позиции также равна 3, поэтому из матрицы будут взяты следующие три столбца, и результат будет:

  0, 0, 1
  1, 1, 1
  1, 0, 1
  0, 0, 0
  0, 1, 0

Последний индекс позиции имеет список длины два, поэтому он займет последние два столбца матрицы.

Я не знаю, как этого добиться. Помощь будет оценена.

...