English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Обычные функции для подключения массивов:
Функция | Описание |
concatenate | Соединение последовательности массивов по существующему оси |
stack | Добавление ряда массивов по новому оси. |
hstack | Массивы,堆积在水平序列中 (направление столбца) |
vstack | Массивы,堆积在垂直序列中 (направление строки) |
dstack | Стекание по высоте, высота которого совпадает с глубиной |
Соединение означает放置 содержимого двух или более массивов в один массив.
В SQL мы соединяем таблицы по ключу, а в NumPy мы соединяем массивы по оси.
Функция numpy.concatenate используется для соединения двух или нескольких массивов по заданной оси, формат如下:
numpy.concatenate((a1, a2, ...), axis)
Описание параметров:
a1, a2, ...: массивы одного типаaxis: ось, по которой соединяются массивы, по умолчанию 0
import numpy as np a = np.array([[1,2,3,4,5],[3,4,5,6,7]]) print('Первый массив:') print(a) print('\n') b = np.array([[5,6,7,8,9],[7,8,9,10,11]]) print('Второй массив:') print(b) print('\n') # Дименсии двух массивов одинаковы print ('Соединение двух массивов по оси 0:') print (np.concatenate((a,b))) print('\n') print ('Соединение двух массивов по оси 1:') print (np.concatenate((a,b),axis = 1))
Результат вывода:
[[ 5 6 7 8 9] [ 7 8 9 10 11] Соединение двух массивов по оси 0: [[ 1 2 3 4 5] [ 3 4 5 6 7] [ 5 6 7 8 9] [ 7 8 9 10 11] Соединение двух массивов по оси 1: [[ 1 2 3 4 5 5 6 7 8 9] [ 3 4 5 6 7 7 8 9 10 11]
Функция numpy.stack используется для соединения последовательности массивов по новому оси, формат如下:
numpy.stack(arrays, axis)
Описание параметров:
sequence of arrays with the same shapeaxis: возвращает ось в массиве, по которой выполняется stacking
import numpy as np a = np.array([[1,2,3,4,5],[3,4,5,6,7]]) print('Первый массив:') print(a) print('\n') b = np.array([[5,6,7,8,9],[7,8,9,10,11]]) print('Второй массив:') print(b) print('\n') print ('Стекание двух массивов по оси 0:') print (np.stack((a,b),0)) print('\n') print ('Стекание двух массивов по оси 1:') print (np.stack((a,b),1))
Результат вывода следующим образом:
Первый массив: [[1 2 3 4 5] [3 4 5 6 7] Второй массив: [[ 5 6 7 8 9] [ 7 8 9 10 11] Стекание двух массивов по оси 0: [[[ 1 2 3 4 5] [ 3 4 5 6 7]] [[ 5 6 7 8 9] [ 7 8 9 10 11]]] Стекание двух массивов по оси 1: [[[ 1 2 3 4 5] [ 5 6 7 8 9] [ 3 4 5 6 7] [ 7 8 9 10 11]]]
numpy.hstack является вариацией функции numpy.stack, которая создает массивы, используя горизонтальное堆积.
import numpy as np a = np.array([[1,2,3,4,5],[3,4,5,6,7]]) print('Первый массив:') print(a) print('\n') b = np.array([[5,6,7,8,9],[7,8,9,10,11]]) print('Второй массив:') print(b) print('\n') print ('Горизонтальное堆积:') c = np.hstack((a,b)) print(c) print('\n')
Результат вывода следующим образом:
Первый массив: [[1 2 3 4 5] [3 4 5 6 7] Второй массив: [[ 5 6 7 8 9] [ 7 8 9 10 11] Горизонтальное堆积: [[ 1 2 3 4 5 5 6 7 8 9] [ 3 4 5 6 7 7 8 9 10 11]
numpy.vstack является вариацией функции numpy.stack, которая создает массивы, используя вертикальное堆积.
import numpy as np a = np.array([[1,2,3,4,5],[3,4,5,6,7]]) print('Первый массив:') print(a) print('\n') b = np.array([[5,6,7,8,9],[7,8,9,10,11]]) print('Второй массив:') print(b) print('\n') print('Вертикальный стек:') c = np.vstack((a, b)) print(c)
Результат вывода:
Первый массив: [[1 2 3 4 5] [3 4 5 6 7] Второй массив: [[ 5 6 7 8 9] [ 7 8 9 10 11] Вертикальный стек: [[ 1 2 3 4 5] [ 3 4 5 6 7] [ 5 6 7 8 9] [ 7 8 9 10 11]
NumPy предоставляет вспомогательную функцию: dstack() для стека по высоте, которая имеет одинаковую глубину.
import numpy as np a = np.array([[1,2,3,4,5],[3,4,5,6,7]]) b = np.array([[5,6,7,8,9],[7,8,9,10,11]]) arr = np.dstack((a, b)) print(arr)
Результат вывода:
[[[ 1 5] [ 2 6] [ 3 7] [ 4 8] [ 5 9]] [[ 3 7] [ 4 8] [ 5 9] [ 6 10] [ 7 11]]]