Когда вы работаете с многомерными массивами в NumPy, часто возникает необходимость превратить их в одномерные структуры. В этой статье мы подробно рассмотрим функцию np.ravel()
, которая предназначена именно для этой цели.
Функция np.ravel()
предоставляет способ "сплющивания" многомерного массива в одномерный. Это может быть полезно для сериализации массивов, последовательной обработки элементов или сравнения двух массивов поэлементно.
Синтаксис:
numpy.ravel(a, order='C')
a
: массив, который необходимо преобразовать в одномерный.order
(необязательный): порядок чтения элементов из исходного массива. По умолчанию C
(C-style), но может быть установлено в F
(Fortran-style).Простой пример "сплющивания":
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
flattened = np.ravel(arr)
print(flattened) # [1 2 3 4 5 6]
Изменение порядка с помощью параметра order
:
arr = np.array([[1, 2], [3, 4]])
print(np.ravel(arr, order="C")) # [1 2 3 4]
print(np.ravel(arr, order="F")) # [1 3 2 4]
np.ravel()
возвращает представление исходного массива, если это возможно, а не копирует данные. Это значит, что изменения, внесенные в возвращаемый массив, отразятся и на исходном массиве (и наоборот).arr = np.array([[1, 2], [3, 4]])
flattened = np.ravel(arr)
flattened[0] = 100
print(arr)
# [[100 2]
# [ 3 4]]
flatten()
:arr = np.array([[1, 2], [3, 4]])
flattened_copy = arr.flatten()
flattened_copy[0] = 100
print(arr)
# [[1 2]
# [3 4]]
np.ravel()
часто используется в комбинации с другими функциями NumPy, такими как np.dot()
для вычисления скалярного произведения или np.concatenate()
для объединения массивов.Функция np.ravel()
- это мощный инструмент в библиотеке NumPy, который позволяет легко и быстро преобразовывать многомерные массивы в одномерные. Особенно полезно это может быть при обработке и анализе данных, когда нужно провести линейные операции или сравнения по всем элементам массива.
Содержание: