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

Connessione degli array NumPy

Ecco alcune funzioni comuni per connettere array:

FunzioneDescrizione
concatenateConnetti una serie di array lungo l'asse esistente
stackAggiungi una serie di array lungo un nuovo asse.
hstackCadea orizzontale di array (direzione della colonna)
vstackCadea verticale di array (direzione della riga)
dstackSovrapposizione lungo l'altezza, la quale è uguale alla profondità

Connessione degli array lungo l'asse (numpy.concatenate)

La connessione significa inserire il contenuto di due o più array in un singolo array.
In SQL, connettiamo le tabelle basandoci sulla chiave, mentre in NumPy connettiamo gli array lungo l'asse.

La funzione numpy.concatenate viene utilizzata per connettere due o più array di forma identica lungo un asse specificato, con il formato seguente:

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

Spiegazione dei parametri:

a1, a2, ...: array dello stesso tipoaxis: l'asse lungo il quale connettere gli array, predefinito a 0

import numpy as np
a = np.array([[1,2,3,4,5],[3,4,5,6,7]])
print('Primo array:')
print(a)
print('\n')
b = np.array([[5,6,7,8,9],[7,8,9,10,11]])
print('Secondo array:')
print(b)
print('\n')
 # Le dimensioni dei due array sono le stesse
print('Connessione lungo l'asse 0 di due array:')
print(np.concatenate((a, b)))
print('\n')
print('Connessione lungo l'asse 1 di due array:')
print(np.concatenate((a, b), axis=1))

Risultato di output:

[[ 5 6 7 8 9]
[ 7 8 9 10 11]
Connessione lungo l'asse 0 di due array:
[[ 1 2 3 4 5]
[ 3 4 5 6 7]
[ 5 6 7 8 9]
[ 7 8 9 10 11]
Connessione lungo l'asse 1 di due array:
[[ 1 2 3 4 5 5 6 7 8 9 ]
[ 3 4 5 6 7 7 8 9 10 11 ]

Connessione degli array tramite funzione di pila (numpy.stack)

La funzione numpy.stack viene utilizzata per connettere una sequenza di array lungo un nuovo asse, con il formato seguente:

numpy.stack(arrays, axis)

Spiegazione dei parametri:

sequence di array con la stessa formaaxis: restituisce l'asse degli array, lungo il quale l'array è sovrapposto

import numpy as np
a = np.array([[1,2,3,4,5],[3,4,5,6,7]])
print('Primo array:')
print(a)
print('\n')
b = np.array([[5,6,7,8,9],[7,8,9,10,11]])
print('Secondo array:')
print(b)
print('\n')
print('Sovrapposizione lungo l'asse 0 di due array:')
print(np.stack((a, b), 0))
print('\n')
print('Sovrapposizione lungo l'asse 1 di due array:')
print(np.stack((a, b), 1))

Il risultato di output è il seguente:

Primo array:
[[1 2 3 4 5]
[3 4 5 6 7]
Secondo array:
[[ 5 6 7 8 9]
[ 7 8 9 10 11]
Sovrapposizione lungo l'asse 0 di due array:
[[[ 1 2 3 4 5 ]
[ 3 4 5 6 7 ]
[[ 5 6 7 8 9]
[ 7 8 9 10 11 ]]
Sovrapposizione lungo l'asse 1 di due array:
[[[ 1 2 3 4 5 ]
[ 5 6 7 8 9 ]
[[ 3 4 5 6 7 ]
[ 7 8 9 10 11 ]]

Sovrapposizione orizzontale degli array (numpy.hstack)

numpy.hstack è una variante della funzione numpy.stack, che genera array tramite la sovrapposizione orizzontale.

import numpy as np
a = np.array([[1,2,3,4,5],[3,4,5,6,7]])
print('Primo array:')
print(a)
print('\n')
b = np.array([[5,6,7,8,9],[7,8,9,10,11]])
print('Secondo array:')
print(b)
print('\n')
print('Sovrapposizione orizzontale:')
c = np.hstack((a, b))
print(c)
print('\n')

Il risultato di output è il seguente:

Primo array:
[[1 2 3 4 5]
 [3 4 5 6 7]
Secondo array:
[[ 5 6 7 8 9]
 [ 7 8 9 10 11]
Sovrapposizione orizzontale:
[[ 1 2 3 4 5 5 6 7 8 9 ]
 [ 3 4 5 6 7 7 8 9 10 11 ]

Sovrapposizione verticale degli array (numpy.vstack)

numpy.vstack è una variante della funzione numpy.stack, che genera array tramite la sovrapposizione verticale.

import numpy as np
a = np.array([[1,2,3,4,5],[3,4,5,6,7]])
print('Primo array:')
print(a)
print('\n')
b = np.array([[5,6,7,8,9],[7,8,9,10,11]])
print('Secondo array:')
print(b)
print('\n')
print('Sovrapposizione verticale:')
c = np.vstack((a, b))
print(c)

Risultato di output:

Primo array:
[[1 2 3 4 5]
 [3 4 5 6 7]
Secondo array:
[[ 5 6 7 8 9]
 [ 7 8 9 10 11]
Sovrapposizione verticale:
[[ 1 2 3 4 5]
 [ 3 4 5 6 7]
 [ 5 6 7 8 9]
 [ 7 8 9 10 11]

Sovrapposizione in altezza (numpy.dstack)

NumPy fornisce una funzione ausiliaria: dstack() per sovrapporre in altezza, che ha la stessa altezza della profondità.

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)

Risultato di output:

[[[ 1 5]
  [ 2 6]
  [ 3 7]
  [ 4 8]
  [ 5 9]]
 [[ 3 7]
  [ 4 8]
  [ 5 9]
  [ 6 10]
  [ 7 11]]]