Rumah > pembangunan bahagian belakang > Tutorial Python > Cara menggunakan np.vstack() dan np.hstack() dalam Python

Cara menggunakan np.vstack() dan np.hstack() dalam Python

PHPz
Lepaskan: 2023-04-18 13:04:03
ke hadapan
2620 orang telah melayarinya

Di sini kami memperkenalkan dua kaedah penyambungan tatasusunan:

np.vstack(): tindanan dalam arah menegak

np.hstack(): jubin dalam arah mendatar

import numpy as np
arr1=np.array([1,2,3])
arr2=np.array([4,5,6])
print np.vstack((arr1,arr2))
 
print np.hstack((arr1,arr2))
 
a1=np.array([[1,2],[3,4],[5,6]])
a2=np.array([[7,8],[9,10],[11,12]])
print a1
print a2
print np.hstack((a1,a2))
Salin selepas log masuk

Keputusannya adalah seperti berikut:

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

Perlu ditekankan di sini bahawa apabila menggunakan hstack, saya sedang melakukan tugasan1 pada cs231n saya selalu mendapat ralat di sini dalam hstack! Barulah saya sedar bahawa pengajian saya sebelum ini sangat dangkal!

(1) np.hstack()

Prototaip fungsi: numpy.hstack(tup)

di mana tup ialah jujukan tatasusunan, tup : jujukan daripada ndarray

Tatasusunan mesti mempunyai bentuk yang sama sepanjang semua kecuali paksi kedua, kecuali tatasusunan 1-D yang boleh menjadi sebarang panjang.

Bersamaan dengan: np . concatenate(tup, axis=1)

Contoh 1:

import numpy as np
brr1=np.array([1,2,3,4,55,6,7,77,8,9,99])
brr1_folds=np.array_split(brr1,3)
print brr1_folds
print brr1_folds[0:2]+brr1_folds[1:3]
print np.hstack((brr1_folds[:2]+brr1_folds[1:3]))
print brr1_folds[0:2]
print brr1_folds[1:3]
#print np.hstack((brr1_folds[0:2],brr1_folds[1:3]))
Salin selepas log masuk

Jika baris terakhir tidak dikomentari, ralat akan berlaku;

[ tatasusunan([ 1, 2, 3, 4]), tatasusunan([55, 6, 7, 77]), tatasusunan([ 8, 9, 99])]
[tatasusunan([1, 2, 3, 4]) , tatasusunan([55, 6, 7, 77]), tatasusunan([55, 6, 7, 77]), tatasusunan([ 8, 9, 99])]
[ 1 2 3 4 55 6 7 77 55 6 7 77 8 9 99]
[array([1, 2, 3, 4]), array([55, 6, 7, 77])]
[array([55, 6, 7 , 77]), tatasusunan([ 8, 9, 99])]

Sebab ralat ialah dimensi tatasusunan saya tidak konsisten. Hanya tukar kepada + Tanda tambah ialah penyambungan senarai!

Contoh 2:

print np.hstack(([1,2,3,3,4],[3,4,5,8,6,6,7]))
Salin selepas log masuk

Hasilnya ialah: Ia menunjukkan bahawa hstack tatasusunan satu dimensi adalah sewenang-wenangnya.

[1 2 3 3 4 3 4 5 8 6 6 7]

Contoh 3:

Menunjukkan bahawa timbunan h kita mesti mempunyai dimensi kedua yang sama:

print np.hstack(([1,2,3,3,4],[3,4,5,8,6,6,7]))
print np.hstack(([[1,2,3],[2,3,4]],[[1,2],[2,3]]))
Salin selepas log masuk

Keputusan:

[1 2 3 3 4 3 4 5 8 6 6 7]
[[1 2 3 1 2]

[ 2 3 4 2 3]]

Jika anda menukar perkara di atas kepada yang berikut, ralat akan dilaporkan! ! !

print np.hstack(([1,2,3,3,4],[3,4,5,8,6,6,7]))
print np.hstack(([[1,2,3],[2,3,4]],[[1,2]]))
Salin selepas log masuk

(2) np.vstack()

Prototaip fungsi: numpy.hstack(tup)

tup : jujukan ndarray< . dimensi Selain itu, bentuk mestilah sama dalam dimensi lain. Tatasusunan satu dimensi mestilah mempunyai saiz yang sama.

Contoh 1:

Tetapi apa yang perlu anda perhatikan ialah baris kedua adalah salah!

Contoh 2:

print np.vstack(([1,2,3],[3,4,3]))
print np.vstack(([1,2,3],[2,3]))
Salin selepas log masuk
Perkara yang sama menunjukkan bahawa jika dimensi kedua tatasusunan kami berbeza, ralat akan berlaku.

Contoh 3:

print np.vstack(([[1,2,3],[3,4,3]],[[1,3,4],[2,4,5]]))
print np.vstack(([[1,2,3],[3,4,3]],[[3,4],[4,5]]))
Salin selepas log masuk
Kami lulus dalam senarai:

print np.vstack(([[1,2,3],[3,4,3]],[[2,4,5]]))
print np.vstack(([[1,2,3],[3,4,3]],[[4,5]]))
Salin selepas log masuk
Keputusan:

[array([[ 1 , 2],

[ 2, 4],
import numpy as np
arr1=np.array([[1,2],[2,4],[11,33],[2,44],[55,77],[11,22],[55,67],[67,89]])
arr11=np.array([[11,2,3],[22,3,4],[4,5,6]])
arr1_folds=np.array_split(arr1,3)
print arr1_folds
print np.vstack(arr1_folds)
Salin selepas log masuk
[11, 33]]), tatasusunan([[ 2, 44],

[55, 77],

[11, 22 ] ]), tatasusunan([[55, 67],
[67, 89]])]

[[ 1 2]
[ 2 4]
[11 33]
[ 2 44]
[55 77]
[11 22]
[55 67]
[67 89]]

Atas ialah kandungan terperinci Cara menggunakan np.vstack() dan np.hstack() dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan