Сжатие массива в одномерный в NumPy

Сжатие массива в одномерный с помощью np.ravel() в NumPy

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

Основы функции 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()

  • Функция 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, который позволяет легко и быстро преобразовывать многомерные массивы в одномерные. Особенно полезно это может быть при обработке и анализе данных, когда нужно провести линейные операции или сравнения по всем элементам массива.

Содержание: