Bagaimana untuk Membentuk Semula Tatasusunan NumPy 4D kepada Tatasusunan 2D?

Mary-Kate Olsen
Lepaskan: 2024-10-31 18:09:46
asal
838 orang telah melayarinya

How to Reshape a 4D NumPy Array to a 2D Array?

Intuisi dan Idea Di Sebalik Membentuk Semula Tatasusunan 4D kepada Tatasusunan 2D dalam NumPy

Dalam NumPy, membentuk semula tatasusunan berbilang dimensi memerlukan pemahaman tentang pilih atur paksi dan fungsi bentuk semula. Untuk membentuk semula tatasusunan 4D kepada tatasusunan 2D, kami biasanya mengikuti proses tiga langkah:

  1. Paksi Permute: Susun semula dimensi tatasusunan agar sepadan dengan bentuk output yang diingini. Ini dilakukan menggunakan fungsi seperti transpose, moveaxis, rollaxis atau swapaxes.
  2. Split or Cancan Axes: Laraskan dimensi tatasusunan dengan mencipta paksi baharu (memisahkan) atau menggabungkan paksi sedia ada ( bergabung).
  3. Bentuk Semula: Gunakan fungsi bentuk semula untuk melaraskan bentuk tatasusunan kepada saiz output yang diingini.

Contoh

Pertimbangkan tatasusunan 4D berikut:

array([[[[ 0,  0],
         [ 0,  0]],

        [[ 5, 10],
         [15, 20]]],


       [[[ 6, 12],
         [18, 24]],

        [[ 7, 14],
         [21, 28]]]])
Salin selepas log masuk

Untuk membentuk semula kepada (4,4):

  1. Permute Axes: Kami mahu susunan paksi menjadi (0, 1, 3, 2). Ini boleh dicapai menggunakan transpose:
a = a.transpose((2, 0, 3, 1))
Salin selepas log masuk
  1. Paksi Pisah: Jangan lakukan pemisahan, kerana kita sudah mempunyai bilangan dimensi yang betul.
  2. Bentuk Semula: Bentuk semula kepada bentuk yang diingini:
a = a.reshape(4,4)
Salin selepas log masuk

Hasil:

array([[ 0,  5,  0, 10],
       [ 6,  7, 12, 14],
       [ 0, 15,  0, 20],
       [18, 21, 24, 28]])
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Membentuk Semula Tatasusunan NumPy 4D kepada Tatasusunan 2D?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!