Функции numpy.reshape() и numpy.flatten()

Изменение формы данных

В некоторых случаях вам необходимо поменять форму вашего массива данных. Для этого используется функция reshape(). Синтаксис будет следующим:

numpy.reshape(a, newShape, order='C')

В этом синтаксисе:

  • a — массив, форму которого вы хотите изменить,
  • newShape — желаемая форма,
  • order — определяет порядок хранения массива в памяти (указывается опционально). По умолчанию задан параметр ‘C’, что означает построковое хранение. Можно поменять на ‘F’ и хранить по колонкам, в стиле Fortran.

Пример

import numpy as np
e  = np.array([(1,2,3), (4,5,6)])
print(e)
e.reshape(3,2)

Output:

 // Before reshape
[[1 2 3] 
 [4 5 6]]	
//After Reshape
array([[1, 2],       
	[3, 4],       
	[5, 6]])

Функция flatten()

При работе с нейронными сетями, например со сверточными, часто нужно преобразовывать массивы в одномерный вектор. Для этих целей можно использовать функцию flatten(). Синтаксис у нее следующий:

numpy.flatten(order='C')

Здесь order — опциональный параметр. По умолчанию задается ‘C’ , при этом преобразование в вектор будет производиться построчно.

Пример

e.flatten()	

Output:

array([1, 2, 3, 4, 5, 6])