Автор оригинала: Team Python Pool.
Numpy Vstack в Python Для различных массивов
Модуль numpy в python состоит из очень многих интересных функций. Одним из таких увлекательных и экономящих время методов является функция numpy vstack (). Много раз мы хотим сложить различные массивы в один массив, не теряя значения. И это тоже в одной строке кода. Итак, для решения этой проблемы в numpy vstack() и hstack () доступны две функции. Здесь “v” означает “Вертикальный”, а “h” – “Горизонтальный”.
В этой конкретной статье мы подробно обсудим функцию Numpy vstack(). Функция numpy.vstack() в Python используется для того, чтобы сложить последовательность входных массивов вертикально (по строкам) и сделать их единым массивом. Вы можете очень эффективно использовать vstack() вплоть до трехмерных массивов. Теперь достаточно разговоров; давайте перейдем непосредственно к использованию и примерам из основ.
Синтаксис
numpy.vstack(tup)
Параметры
Имя | Описание |
туп | Последовательность ndarray. Коллекция входных массивов-это единственное, что вам нужно предоставить в качестве входных данных |
Примечание
Нам нужен только один аргумент для этой функции: ‘tup.’ Tup известен как кортеж, содержащий массивы, которые должны быть сложены. Этот параметр является обязательным параметром, и мы должны обязательно передать значение.
Возвращаемое значение
Stacked Array: Массив (nd-массив), образованный путем укладки переданных массивов.
Примеры для упрощения Numpy Vstack
Теперь мы увидели синтаксис, требуемые параметры и возвращаемое значение функции numpy stack. Давайте перейдем к разделу примеров. Здесь мы начнем с самого основного случая, а затем постепенно увеличим уровень примеров.
Пример 1: Базовый кейс для изучения работы Numpy Vstack
В этом примере 1 мы просто инициализируем, объявим два массива numpy, а затем создадим их вертикальный стек с помощью функции vstack.
import numpy as np.array([0, 1, 2]) print ("First Input array : \n", x) .array([3, 4, 5]) print ("Second Input array : \n", y) .vstack((x,y)) print ("Vertically stacked array:\n ", res)
Выход:
First Input array :
[0 1 2]
Second Input array :
[3 4 5]
Vertically stacked array:
[[0 1 2]
[3 4 5]]
Объяснение:
В приведенном выше примере мы сложили два массива numpy вертикально (по строкам). Во-первых, мы импортировали модуль numpy. После импорта мы инициализировали, объявили и сохранили два массива numpy в переменных ‘x и y’. После этого с помощью функции np.vstack() мы сложили или сложили два 1-D массива numpy. Здесь обратите внимание, что стек будет выполнен вертикально (row-wisestack). Кроме того, оба массива должны иметь одинаковую форму вдоль всех осей, кроме первой.
Пример 2: Объединение Трех 1-D Массивов По Вертикали С Помощью функции numpy.vstack
Давайте перейдем ко второму примеру, здесь мы возьмем три 1-D массива и объединим их в один href=”https://en.wikipedia.org/wiki/Array_data_structure”>массив. href=”https://en.wikipedia.org/wiki/Array_data_structure”>массив.
import numpy as np.array([0, 1]) print ("First Input array : \n", x) .array([2, 3]) print ("Second Input array : \n", y) .array([4, 5]) print ("Third Input array : \n", z) .vstack((x, y, z)) print ("Vertically stacked array:\n ", res)
Выход:
[[0 1]
[2 3]
[4 5]]
Объяснение
В приведенном выше примере мы сделали все то же самое, что и в примере 1, за исключением добавления одного дополнительного массива. В примере 1 мы видим, что существует два массива. Но в этом примере мы использовали три массива “x, y, z”. И с помощью np.vstack() мы соединили их вместе по рядам (вертикально).
Пример 3: Объединение 2-D Массивов Numpy С Numpy.vstack
import numpy as np.array([[0, 1], [2, 3]]) print ("First Input array : \n", x) .array([[4, 5], [6, 7]]) print ("Second Input array : \n", y) .vstack((x, y)) print ("Vertically stacked array:\n ", res)
Выход:
[[0 1]
[2 3]
[4 5]
[6 7]]
Объяснение:
В приведенном выше примере мы инициализировали и объявили два 2-D массива. И мы сохранили их в двух переменных, ‘x,y’ соответственно. После хранения переменных в двух разных массивах мы использовали функцию, чтобы объединить два 2-D массива и сделать их одним 2-d массивом. Здесь нам нужно убедиться, что форма обоих входных массивов должна быть одинаковой. Если формы различны, то мы получим ошибку значения.
Пример 4: Укладка 3-D Numpy массива с помощью функции vstack
import numpy as np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print ("First Input array : \n", x) .array([[[9, 10], [11, 12]], [[13, 14], [15, 16]]]) print ("Second Input array : \n", y) .vstack((x, y)) print ("Vertically stacked array:\n ", res)
Выход:
First Input array :
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
Second Input array :
[[[ 9 10]
[11 12]]
[[13 14]
[15 16]]]
Vertically stacked array:
[[[ 1 2]
[ 3 4]]
[[ 5 6]
[ 7 8]]
[[ 9 10]
[11 12]]
[[13 14]
[15 16]]]
Объяснение
Мы можем использовать эту функцию для укладки или объединения 3-D массива по вертикали (по строкам). Вместо 1-D массива или 2-D массива в приведенном выше примере мы объявили и инициализировали два 3-D массива. После инициализации мы сохранили их в двух переменных, ‘x и y’ соответственно. Следуя части хранения, мы использовали эту функцию для укладки 3-D массива в вертикальном порядке (по строкам).
Примечание: Форма входных массивов должна быть одинаковой.
Можем ли Мы Комбинировать Массивы Numpy с различными формами с помощью Vstack
Простой односложный ответ-Нет. Давайте докажем это на одном из примеров.
import numpy as np.array([0, 1]) print ("First Input array : \n", x) .array([3, 4, 5]) print ("Second Input array : \n", y) .vstack((x,y)) print ("Vertically stacked array:\n ", res)
Выход:
ValueError: all the input array dimensions except for the concatenation axis must match exactly
Объяснение:
В приведенном выше случае мы получаем ошибку значения. Здесь, во-первых, мы импортировали необходимый модуль. После этого мы инициализировали два массива и сохранили их в двух разных переменных. Здесь следует отметить, что в переменной ” x ” массив имеет два элемента. Но в переменной ‘y’ массив имеет три элемента. Таким образом, мы видим, что форма обоих массивов не одинакова. Что является основным требованием при работе с этой функцией. Вот почему мы получаем ошибку значения.
Разница между Np.Vstack() и Np.Concatenate()
NumPy concatenate аналогичен более гибкой модели np.vstack. NumPy concatenate также объединяет массивы NumPy, но он может объединять массивы коллективно либо вертикально, либо даже горизонтально. Таким образом, NumPy concatenate получает возможность объединять массивы вместе, как np.vstack плюс np.hstack. Как действует np.concatenate, зависит от того, как вы используете параметр axis из синтаксиса.
Разница между numpy vstack() и hstack()
NumPy hstack и NumPy vstack похожи друг на друга, потому что они оба объединяют массивы NumPy вместе. Существенное различие заключается в том, что np.hstack объединяет массивы NumPy по горизонтали, а np. vstack-по вертикали.
Однако, помимо этого, синтаксис и поведение очень похожи.
Должно ли количество столбцов и строк быть одинаковым?
Rows: Нет, если вы используете NumPy vstack, входные массивы могут иметь разное количество строк.Столбцы: Если вы используете NumPy vstack, входные массивы должны иметь точно такое же количество столбцов.
Вывод
В этой статье мы подробно изучили различные аспекты, такие как синтаксис, функционирование и случаи этого vstack. Numpy.vstack () – это функция, которая помогает сложить входную последовательность вертикально так, чтобы получился один сложенный массив. Это может быть полезно, когда мы хотим сложить различные массивы в одну строку (вертикально). Мы можем использовать эту функцию вплоть до nd-массивов, но рекомендуется использовать ее до 3-D массивов.
Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.
Счастливого Пифонирования!