Python/Numpy: Разделите массив

У меня есть некоторые данные, представленные в 1300x1341 матрица. Я хотел бы разделить эту матрицу в нескольких частях (например, 9) так, чтобы я мог циклично выполниться и обработать их. Данные должны остаться заказанными в том смысле, что x [0,1] остается ниже (или выше если Вам нравится), x [0,0] и помимо x [1,1].
Точно так же, как при обработке изображений данных Вы могли бы потянуть 2 вертикальных и 2 горизонтальных строки по изображению для иллюстрирования этих 9 частей.

Если я использую numpys, изменяются (например, matrix.reshape (9,260,745) или любая другая комбинация 9,260,745), это не приводит к необходимой структуре, так как вышеупомянутое упорядочивание потеряно...

Я неправильно понимал изменять метод, или он может быть сделан этот путь?

Что другой pythonic/numpy путь там, чтобы сделать это?

5
задан BandGap 5 May 2010 в 13:49
поделиться

2 ответа

Похоже, вам нужно использовать numpy.split () , документация которого находится здесь ... или возможно, его брат numpy.array_split () здесь . Они предназначены для разделения массива на равные части без переупорядочивания чисел, как это делает reshape,

Я не тестировал это, но что-то вроде:

numpy.array_split(numpy.zeros((1300,1341)), 9)

должно помочь.

5
ответ дан 14 December 2019 в 08:45
поделиться

reshape, цитируя его документацию,

Придает новую форму массиву без изменения его данных.

Другими словами, он вообще не перемещает данные массива - он просто влияет на размерность массива. Вы, с другой стороны, похоже, требуете нарезки; снова цитирую:

Можно нарезать и расслоить массивы для извлечения массивов одного и того же количества измерений, но разных размеров, чем исходные. Нарезка и расслоение работает точно так же как это делается для списков и кортежей за исключением того, что они могут быть применены к нескольких измерений.

Так, например, thearray[0:260, 0:745] - это самая верхняя левая часть, thearray[260:520, 0:745] - самая верхняя левая часть, и так далее. Вы можете иметь ссылки на различные части в списке (или дикте с соответствующими ключами), чтобы обрабатывать их отдельно.

2
ответ дан 14 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: