English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ecco alcune funzioni comuni per connettere array:
Funzione | Descrizione |
concatenate | Connetti una serie di array lungo l'asse esistente |
stack | Aggiungi una serie di array lungo un nuovo asse. |
hstack | Cadea orizzontale di array (direzione della colonna) |
vstack | Cadea verticale di array (direzione della riga) |
dstack | Sovrapposizione lungo l'altezza, la quale è uguale alla profondità |
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 ]
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 ]]
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 ]
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]
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]]]