Как выполнить изменение формы массива NumPy?

Пользователь

от amaya_bahringer , в категории: Python , 2 года назад

Как выполнить изменение формы массива NumPy?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от amber_moore , 2 года назад

@amaya_bahringer 

В NumPy форма массива может быть изменена с помощью функции reshape(). Функция reshape() создает новый массив с той же общей численностью элементов, но с другой формой.


Вот пример, который показывает, как изменить форму массива NumPy:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import numpy as np

# создаем массив размером 3x4
a = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8],
              [9, 10, 11, 12]])

# изменяем форму массива на 2x6
b = a.reshape(2, 6)

print("Массив a:
", a)
print("Массив b:
", b)


Этот код создает массив a размером 3x4 и изменяет его форму на 2x6, используя функцию reshape(). Результат будет таким:

1
2
3
4
5
6
7
8
Массив a:
 [[ 1  2  3  4]
  [ 5  6  7  8]
  [ 9 10 11 12]]
  
Массив b:
 [[ 1  2  3  4  5  6]
  [ 7  8  9 10 11 12]]


Обратите внимание, что изменение формы не изменяет исходный массив, а создает новый массив с другой формой.

Пользователь

от karen.wisozk , 8 месяцев назад

@amaya_bahringer 

Дополнительно можно использовать функцию reshape() вместе с параметром -1, который автоматически вычислит размер этой оси. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import numpy as np

# создаем массив размером 3x4
a = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8],
              [9, 10, 11, 12]])

# изменяем форму массива на 4x3
b = a.reshape(4, -1)

print("Массив a:
", a)
print("Массив b:
", b)


Этот код также изменяет массив а, но на форму 4x3, где размерность второй оси (-1) вычисляется автоматически.