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
PHPzke hadapan
2023-04-18 13:04:032670semak imbas

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

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

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

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

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

(2) np.vstack()

Prototaip fungsi: numpy.hstack(tup)

tup : jujukan ndarray

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]))
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]]))
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]]))
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)
[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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam