English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NumPy 数组连接

Die häufig verwendeten Funktionen zum Verbinden von Arrays sind:

FunktionBeschreibung
concatenateVerbinden Sie eine Sequenz von Arrays entlang einer bestehenden Achse
stackFügen Sie eine Reihe von Arrays entlang eines neuen Achsen hinzu.
hstackHorizontales Stapeln der Arrays in der Sequenz (in der Richtung der Spalten)
vstackVertikal stapeln Sie die Arrays in der Sequenz (in der Richtung der Zeilen)
dstackVerbinden Sie entlang der Höhe, die mit der Tiefe gleich ist

Verbinden Sie Arrays entlang einer Achse (numpy.concatenate)

Verbindung bedeutet, den Inhalt von zwei oder mehreren Arrays in eine einzelne Matrix zu legen.
In SQL verbinden wir Tabellen basierend auf dem Schlüssel, während wir in NumPy Arrays entlang einer Achse verbinden.

Die Funktion numpy.concatenate verbindet zwei oder mehrere Arrays entlang einer angegebenen Achse, Format wie folgt:

numpy.concatenate((a1, a2, ..., axis)

Parameterbeschreibung:

a1, a2, ...: Arrays desselben TypsAchse: Verbinden Sie die Achsen der Arrays entlang dieser Achse, Standardwert ist 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')
 # Die Dimensionen der beiden Arrays sind gleich
print ('Verbinden zwei Arrays entlang der Achse 0: '
print (np.concatenate((a,b)))
print('\n')
print ('Entlang der Achse 1 Verbinden zwei Arrays: '
print (np.concatenate((a,b),axis = 1))

输出结果为:

[[ 5 6 7 8 9]
[ 7 8 9 10 11]]
Verbinden zwei Arrays entlang der Achse 0:
[[ 1 2 3 4 5]
[ 3 4 5 6 7]
[ 5 6 7 8 9]
[ 7 8 9 10 11]]
沿轴 1 Verbinden zwei Arrays:
[[ 1 2 3 4 5 5 6 7 8 9]
[ 3 4 5 6 7 7 8 9 10 11]]

Verwenden Sie die Stack-Funktion, um Arrays zu verbinden (numpy.stack)

Die Funktion numpy.stack verbindet eine Sequenz von Arrays entlang eines neuen Achsen, Format wie folgt:

numpy.stack(arrays, axis)

Parameterbeschreibung:

Sequenz von Arrays mit gleicher FormAchse: Gibt die Achse der Matrix zurück, entlang der die Arrays gestapelt werden

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 ('Entlang der Achse 0 Stacken zwei Arrays: '
print (np.stack((a,b),0))
print('\n')
print ('Entlang der Achse 1 Stacken zwei Arrays: '
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.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.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)

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]]]