Как из многомерного массива сделать одномерный в numpy?

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

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

Как из многомерного массива сделать одномерный в numpy?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@elda 

Чтобы сделать многомерный массив в numpy одномерным, вы можете использовать функцию flatten:

1
2
3
4
5
6
import numpy as np

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

print(flattened_arr)  # [1 2 3 4 5 6]


Если вы хотите сохранить изменения в исходном массиве, вы можете использовать метод ravel:

1
2
3
4
5
6
import numpy as np

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

print(arr)  # [1 2 3 4 5 6]


Оба метода работают таким образом, что они преобразуют многомерный массив в одномерный, как бы "расправляя" его в одну линию. Однако flatten создает новый массив, а ravel изменяет исходный массив.

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

от felix , год назад

@elda 

Если вам нужно преобразовать многомерный массив в одномерный без создания нового массива или изменения исходного массива, вы можете использовать функцию reshape:


1 2 3 4 5 6


import numpy as np


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


print(reshaped_arr) # [1 2 3 4 5 6]


Функция reshape с аргументом -1 позволяет numpy самостоятельно определить размеры одномерного массива на основе исходного массива. Таким образом, передача -1 в reshape приведет к созданию одномерного массива с размером, соответствующим общему количеству элементов в исходном массиве.