Для объединения массивов в Python мы можем использовать функции concatenate(), stack(), hstack(), vstack(), columns_stack(), char.add() и add() из модуля NumPy. Мы даже можем создавать массивы, используя модуль array в Python, а затем объединять их без функций numpy. Массивы в Python могут иметь разные размеры, для их объединения мы можем использовать функции concatenate(),append() иcolumn_stack().

В Python существует множество различных методов объединения массива. Давайте рассмотрим их один за другим, используя несколько наглядных примеров.

Содержание

Метод 1: с использованием функции concatenate()

NumPy concatenate() — это универсальный метод Python для объединения двух или более массивов numpy в Python вдоль указанной оси. По умолчанию он объединяется по первому измерению (ось 0).

Входные массивы Python должны иметь одинаковую форму, за исключением размера, соответствующего оси.

Сценарий: рассмотрим ситуацию, когда нам нужно объединить данные, хранящиеся в виде массивов в Python.

import numpy as np
temperatures_ny = np.array([32, 30, 35, 40, 45])
temperatures_la = np.array([70, 72, 68, 75, 74])
combined_temperatures = np.concatenate((temperatures_ny, temperatures_la))
print(combined_temperatures)

Вывод: в Python есть два отдельных массива, содержащих данные. Используя функцию np.concatenate() в Python, эти два массива numpy объединяются в один непрерывный массив numpy Python.

[32 30 35 40 45 70 72 68 75 74]

Метод 1: с использованием функции concatenate()

Функция concatenate() из библиотеки numpy — наиболее эффективный способ объединения массивов в Python.

Метод 2: с помощью функции numpy.stack()

Метод numpy stack() объединяет два или более массива Python по новой оси. Это полезно, когда у вас есть массивы в Python одинаковой формы и вы хотите объединить их таким образом, чтобы результат имел еще одно измерение.

Например, если вы объедините два одномерных массива, результатом будет двумерный массив, в котором входные массивы будут строками.

Например: здесь мы объединяем данные двух массивов через Python для лучшего сравнения.

import numpy as np
revenue_startup_1 = np.array([50000, 55000, 52000, 58000, 60000])
revenue_startup_2 = np.array([48000, 53000, 51000, 56000, 59000])
stacked_revenue = np.stack((revenue_startup_1, revenue_startup_2), axis=0)
print(stacked_revenue)

Вывод: Используя np.stack(), мы укладываем два массива в Python вдоль новой оси (в данном случае оси 0), создавая двумерный массив NumPy. Каждая строка в этом двумерном массиве соответствует одному из данных массива, что обеспечивает простой способ их параллельного сравнения.

[[50000 55000 52000 58000 60000]
 [48000 53000 51000 56000 59000]]

Метод 2: с помощью функции numpy.stack()

Метод 3: с помощью функции numpy.hstack()

Функция Python hstack() numpy обозначает горизонтальное стекирование. Он укладывает массивы NumPy последовательно по горизонтали (т. е. по столбцам), увеличивая количество столбцов.

Если у вас есть два одномерных массива в Python, эта функция объединит их, чтобы создать еще один одномерный массив.

Пример: объединение данных двух массивов в Python с помощью функции hstack() NumPy.

import numpy as np
population_texas = np.array([2000000, 2500000, 3000000, 3500000, 4000000])
population_california = np.array([2200000, 2700000, 3200000, 3700000, 4200000])
combined_population = np.hstack((population_texas, population_california))
print(combined_population)

Вывод: np.hstack() используется для горизонтального сложения этих двух массивов numpy в Python, в результате чего получается один массив numpy, который содержит данные для обоих бок о бок.

[2000000 2500000 3000000 3500000 4000000 2200000 2700000 3200000 3700000
 4200000]

Метод 3: с помощью функции numpy.hstack()

Метод 4: с помощью numpy.vstack()

Метод NumPy vstack() означает вертикальное стекирование. Он укладывает массивы последовательно по вертикали (т. е. по строкам).

Это полезно для добавления строк в двумерный массив в Python. т. е. если у вас есть два одномерных массива, эта функция создаст двумерный массив, где каждый исходный массив Python представляет собой строку.

Пример: объединение массивов в Python с помощью функции vstack() numpy.

import numpy as np
gdp_2021 = np.array([20.2, 20.4, 20.8, 21.1])
gdp_2022 = np.array([21.5, 21.7, 21.9, 22.1])
gdp_2023 = np.array([22.3, 22.5, 22.7, 22.9])
gdp_data = np.vstack((gdp_2021, gdp_2022, gdp_2023))
print(gdp_data)

Вывод: Используя np.vstack в Python, мы укладываем три массива вертикально, в результате чего получается двумерный массив, где каждая строка представляет собой массив, а столбцы представляют данные.

[[20.2 20.4 20.8 21.1]
 [21.5 21.7 21.9 22.1]
 [22.3 22.5 22.7 22.9]]

Метод 4: с помощью numpy.vstack()

Метод 5: с помощью numpy.column_stack()

Метод NumPy columns_stack() объединяет одномерные массивы в столбцы двухмерного массива. Полезно, когда у вас есть несколько одномерных массивов, которые вы хотите объединить в столбцы двумерного массива.

Он похож на hstack(), но обрабатывает одномерные массивы как столбцы, а не как элементы выходного одномерного массива Python.

Например: в этом примере есть два массива numpy, содержащие два разных данных. и нам нужно объединить их через Python.

import numpy as np
survey_1 = np.array([100, 200, 150])
survey_2 = np.array([80, 220, 130])
combined_survey_data = np.column_stack((survey_1, survey_2))
print(combined_survey_data)

Вывод: используя функцию np.column_stack() в Python, мы объединяем эти два массива в виде столбцов в 2D-массиве.

[[100  80]
 [200 220]
 [150 130]]

Метод 5: с помощью numpy.column_stack()

Метод 6: с использованием numpy.char.add()

Функция numpy.char.add() в NumPy Python используется для поэлементной конкатенации строк. Это означает, что для двух массивов строк он объединяет соответствующие пары строк из двух массивов в Python.

Пример. Давайте узнаем, как Python объединяет массивы строк с помощью некоторой функции NumPy.

import numpy as np
cities = np.array(["New York", "Los Angeles", "Chicago"])
states = np.array(["-NY", "-CA", "-IL"])
full_locations = np.char.add(cities, states)
print(full_locations)

Вывод: здесь у нас есть два массива строк. Функция np.char.add используется для поэлементного объединения строк этих двух массивов в Python.

['New York-NY' 'Los Angeles-CA' 'Chicago-IL']

Метод 6: с использованием numpy.char.add()

Метод 7: с помощью функции numpy.append()

Функция Numpy append() добавляет значения из одного массива в конец другого массива в Python. Это полезно для добавления элементов одного массива numpy в конец другого массива numpy.

Пример. Давайте объединим два массива numpy, используя функцию numpy append() в Python.

import numpy as np
revenue_ny = np.array([5.2, 4.8, 6.1, 5.5])
revenue_ca = np.array([6.5, 6.6, 7.2, 6.8])
total_revenue = np.append(revenue_ny, revenue_ca)
print("Quarterly Revenue Data(NY + CA):", total_revenue)

Вывод: функция np.append() используется для объединения двух массивов NumPy в один массив, содержащий данные обоих массивов в Python.

Quarterly Revenue Data(NY + CA): [5.2 4.8 6.1 5.5 6.5 6.6 7.2 6.8]

Метод 7: с помощью функции numpy.append()

Объединение массивов без NumPy

В стандартной библиотеке Python есть модуль массива, который предоставляет структуру данных массива. Эта структура более экономична, чем списки Python, для хранения числовых данных. Модуль массива также включает методы для выполнения операций над массивами, включая конкатенацию.

Пример. Ниже приведен пример объединения двух массивов с помощью модуля array:

import array
array1 = array.array('i', [1, 2, 3, 4, 5])
array2 = array.array('i', [6, 7, 8, 9, 10])
concatenated_list = array1.tolist() + array2.tolist()
concatenated_array = array.array('i', concatenated_list)
print("Concatenated Array:", concatenated_array)

Вывод: чтобы объединить массивы без numpy, мы сначала преобразуем их в списки Python с помощью метода tolist(). Это необходимо, поскольку модуль массива не предоставляет прямого метода объединения массивов в Python. После преобразования в списки в Python мы можем использовать оператор + для их объединения.

Поскольку наша цель — получить объединенный массив в Python, нам нужно преобразовать наш результат обратно в массив в Python. Мы делаем это, передавая код типа «i» и concatenated_list конструктору массива.

Concatenated Array: array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

Объединение массивов без NumPy

Объединение массивов разных размеров

Массивы NumPy разных размеров в Python относятся к последовательностям или коллекциям элементов, в которых количество элементов или размеры массивов отличаются друг от друга.

Объединение массивов разных размеров — обычная задача при манипулировании данными и научных вычислениях. Python с его мощными библиотеками, такими как NumPy, предоставляет множество функций для беспрепятственного выполнения этих операций.

Метод 1: с помощью concatenate()

Пример: представьте себе случай, когда у вас есть два разных массива Numpy в Python, и вам нужно их объединить.

import numpy as np
array1 = np.array([[1, 2], [3, 4]])
array2 = np.array([[5, 6]])
result = np.concatenate((array1, array2), axis=0)
print(result)

Вывод: функция concatenate() в NumPy объединяет последовательность массивов вдоль существующей оси в Python.

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

Метод 1: с помощью concatenate()

Метод 2: с помощью numpy.append()

Пример. Возьмите два массива Numpy определенного размера и объедините их с помощью Python.

import numpy as np
array1 = np.array([[1, 2], [3, 4]])
array2 = np.array([5, 6])
result = np.append(array1, [array2], axis=0)
print(result)

Вывод: функция add() в NumPy добавляет значения в конец массива в Python.

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

Метод 2: с помощью numpy.append()

Метод 3: с помощью columns_stack()

Пример: давайте возьмем разные массивы разных размеров в Python, а затем попробуем их объединить.

import numpy as np
array1 = np.arange(8).reshape(2,4)
array2 = np.arange(2)
array1 = np.column_stack((array1, array2))
print(array1)

Вывод: функция columns_stack() в модуле numpy складывает 1D-массивы как столбцы 2D-массива в Python.

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

Метод 3: с помощью columns_stack()

Добавить комментарий