Архивировать массивы NumPy

  1. NumPy Zip с функцией list(zip())
  2. NumPy Zip с функцией numpy.stack()
  3. NumPy Zip с функцией numpy.column_stack()

В этом руководстве будут представлены методы сжатия двух одномерных массивов NumPy в один двухмерный массив NumPy в Python.

NumPy Zip с функцией list(zip())

Если у нас есть два одномерных массива и мы хотим соединить их вместе внутри двухмерного массива, мы можем использовать функцию list(zip()) в Python. Этот подход предполагает объединение массивов в список. Функция list(zip(a,b)) принимает в качестве аргумента массивы a и b и возвращает список. Затем мы можем преобразовать заархивированный список в массив с помощью функции numpy.array(). См. Следующий пример кода.

import numpy as np

a = np.array([1,3,5,7])
b = np.array([2,4,6,8])

c = np.array(list(zip(a,b)))

print(c)

Выход:

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

Сначала мы создали два одномерных массива a и b с помощью функции np.array() и заархивировали их вместе с помощью функции np.array(list(zip(a,b))).

Этот подход не очень эффективен, потому что нам нужно преобразовывать между массивами и списками.

NumPy Zip с функцией numpy.stack()

Мы также можем использовать функцию numpy.stack() для достижения той же цели, что и в предыдущем примере. Этот подход более эффективен, чем предыдущий, поскольку преобразование типов не выполняется. Функция numpy.stack() используется для объединения двух или более массивов в соответствии с указанной осью. Мы можем указать параметр axis равным 1, чтобы получить результат, аналогичный предыдущему примеру. См. Следующий пример кода.

import numpy as np

a = np.array([1,2,3,4,5])
b = np.array([6,7,8,9,10])

c = np.stack((a,b), axis = 1)

print(c)

Выход:

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

Сначала мы создали два одномерных массива a и b с помощью функции np.array() и заархивировали их вместе с помощью функции np.stack((a,b), axis=1).

NumPy Zip с функцией numpy.column_stack()

Функция numpy.column_stack() - это еще один метод, который можно использовать для сжатия двух одномерных массивов в один двухмерный массив в Python. Функция numpy.column_stack() используется для объединения двух или более одномерных массивов в виде столбцов в один двухмерный массив. Нам не нужно указывать какой-либо параметр оси для этого подхода. См. Следующий пример кода.

import numpy as np

a = np.array([1,3,5,7])
b = np.array([2,4,6,8])

d = np.column_stack((a,b))

print(d)

Выход:

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

Сначала мы создали два одномерных массива a и b с помощью функции np.array() и заархивировали их вместе с помощью функции np.column_stack(a,b).

Этот подход является лучшим по сравнению с двумя предыдущими методами. Потому что здесь нет преобразования типов, и нам не нужно указывать какую-либо ось в этом подходе.