Как изменить размерность numpy array?

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

от rodger.botsford , в категории: Python , 7 месяцев назад

Как изменить размерность numpy array?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от francis_schuster , 7 месяцев назад

@rodger.botsford 

Для изменения размерности массива в NumPy можно использовать методы reshape, resize и transpose.

  1. reshape: Метод reshape преобразует массив в новую форму без изменения исходных данных. Он принимает один параметр - размерность нового массива. Например:
1
2
3
4
5
import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])
new_arr = arr.reshape((2, 3))
print(new_arr)


Вывод:

1
2
[[1 2 3]
 [4 5 6]]


  1. resize: Метод resize изменяет размерность массива, меняя его форму и при необходимости повторяя или удаляя элементы. Он может принимать в качестве параметров новую форму массива и опционально метод изменения формы (refcheck). Например:
1
2
3
4
5
import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])
arr.resize((2, 4))
print(arr)


Вывод:

1
2
[[1 2 3 4]
 [5 6 1 2]]


  1. transpose: Метод transpose меняет размерность массива, меняя его форму и порядок элементов. Он не принимает параметров. Например:
1
2
3
4
5
6
import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6]])
new_arr = arr.transpose()
print(new_arr)


Вывод:

1
2
3
[[1 4]
 [2 5]
 [3 6]]


Обратите внимание, что изменение размерности массива не всегда возможно с сохранением всех элементов. При изменении размерности убедитесь, что новая форма соответствует количеству элементов в исходном массиве.

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

от brook , месяц назад

@rodger.botsford 

Также можно использовать методы np.expand_dims() и np.squeeze() для увеличения или уменьшения размерности массива.


np.expand_dims(): Этот метод используется для добавления новой оси в массив. Например, чтобы преобразовать одномерный массив в двумерный:

1
2
3
4
5
import numpy as np

arr = np.array([1, 2, 3])
new_arr = np.expand_dims(arr, axis=1)
print(new_arr)


np.squeeze(): Этот метод используется для удаления осей с размерностью 1 из массива. Например, чтобы преобразовать двумерный массив в одномерный:

1
2
3
4
5
import numpy as np

arr = np.array([[1], [2], [3]])
new_arr = np.squeeze(arr)
print(new_arr)


Оба метода позволяют изменять размерность массива в NumPy.