Rumah > pembangunan bahagian belakang > Tutorial Python > Apakah Perbezaan Antara Bentuk Array NumPy (R, 1) dan (R,)?

Apakah Perbezaan Antara Bentuk Array NumPy (R, 1) dan (R,)?

DDD
Lepaskan: 2024-12-07 10:06:16
asal
341 orang telah melayarinya

What's the Difference Between NumPy Array Shapes (R, 1) and (R,)?

Perbezaan Antara Bentuk Tatasusunan NumPy (R, 1) dan (R,)

Dalam NumPy, tatasusunan boleh mempunyai bentuk yang berbeza secara halus, seperti (R, 1) dan (R,). Bentuk ini mungkin kelihatan serupa, tetapi terdapat perbezaan asas dalam cara ia ditafsir dan diproses.

1. Memahami Struktur Tatasusunan

Tatasusunan NumPy terdiri daripada penimbal data dan pandangan. Penampan data menyimpan elemen data mentah, manakala paparan menerangkan cara mentafsir data. Bentuk adalah sebahagian daripada pandangan dan menentukan berapa banyak dimensi dan elemen tatasusunan.

Bentuk (R, 1) dan (R,)

  • (R, 1): Bentuk ini mewakili tatasusunan dengan baris R dan 1 lajur. Ia berkelakuan seperti tatasusunan satu dimensi tetapi mempunyai dimensi tambahan bersaiz 1.
  • (R,): Bentuk ini mewakili tatasusunan dengan baris R sahaja. Ia berkelakuan seperti tatasusunan satu dimensi sebenar tanpa sebarang dimensi tambahan.

2. Sebab Bentuk Berbeza

NumPy telah memilih untuk menyokong kedua-dua bentuk atas sebab sejarah dan untuk memberikan fleksibiliti dalam operasi tertentu. Sesetengah operasi menjangkakan atau menghasilkan tatasusunan dengan bentuk tertentu, membawa kepada gelagat berbeza bergantung pada bentuk input.

3. Implikasi untuk Pendaraban Matriks

Dalam contoh anda, numpy.dot(M[:,0], numpy.ones((1, R))), bentuk boleh menyebabkan masalah. M[:,0] mempunyai bentuk (R,) manakala numpy.ones((1, R)) mempunyai bentuk (1, R), yang membawa kepada ralat penjajaran. Untuk menyelesaikan masalah ini, anda boleh membentuk semula M[:,0] secara eksplisit kepada (R, 1).

4. Amalan Terbaik

Walaupun tiada keutamaan yang ketat antara (R, 1) dan (R,), ia biasanya disyorkan untuk menggunakan (R, 1) apabila tatasusunan secara logiknya satu dimensi tetapi memerlukan tambahan dimensi untuk operasi tertentu. Berhati-hati dengan bentuk yang diharapkan dalam mana-mana fungsi yang anda gunakan untuk mengelakkan ralat.

Pendekatan Alternatif

Dalam contoh anda, anda juga boleh mempertimbangkan alternatif berikut untuk mengelakkan pembentukan semula:

  • numpy.dot(M.T, numpy.ones((R, 1)))
  • M.sum(paksi=0).bentuk semula((R, 1))

Atas ialah kandungan terperinci Apakah Perbezaan Antara Bentuk Array NumPy (R, 1) dan (R,)?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan