Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Saya Mendapat Ralat 'ValueError: operan tidak dapat disiarkan bersama' dalam Operasi Element-Wise NumPy?

Mengapa Saya Mendapat Ralat 'ValueError: operan tidak dapat disiarkan bersama' dalam Operasi Element-Wise NumPy?

Susan Sarandon
Lepaskan: 2024-12-08 20:29:15
asal
544 orang telah melayarinya

Why Do I Get a

Isu Penyiaran dalam Operasi Element-Wise NumPy

Apabila menggunakan operasi mengikut unsur dengan tatasusunan NumPy yang berbeza bentuk, adalah mungkin untuk menghadapi ralat "ValueError: operan tidak dapat disiarkan bersama-sama dengan bentuk." Ralat ini menunjukkan bahawa dimensi tatasusunan tidak serasi untuk operasi yang sepadan.

Penyiaran dalam Operasi Element-Wise NumPy

Penyiaran membenarkan satu atau kedua-dua tatasusunan dikembangkan dalam dimensi mereka untuk menjadikannya serasi untuk operasi mengikut unsur. Dimensi nilai 1 atau tiada boleh digunakan dalam penyiaran, membenarkan tatasusunan bentuk yang berbeza didarab mengikut unsur.

Contoh Ralat

Pertimbangkan kod berikut, di mana X ialah tatasusunan bentuk (m,n) dan y ialah tatasusunan bentuk (n,1):

X * y
Salin selepas log masuk

Kod ini akan menimbulkan ValueError kerana dimensi tidak serasi:

(97,2) x (2,1)
Salin selepas log masuk

Pendaraban Matriks lwn. Pendaraban Bijak Unsur

Dalam NumPy, operator asterisk (*) digunakan untuk pendaraban mengikut unsur, manakala fungsi dot() digunakan untuk pendaraban matriks. Pendaraban matriks memerlukan dimensi yang serasi, manakala pendaraban mengikut unsur memerlukan dimensi yang boleh disiarkan bersama.

Penyelesaian

Untuk menyelesaikan ralat, anda boleh menggunakan titik() berfungsi untuk melaksanakan pendaraban matriks:

X.dot(y)
Salin selepas log masuk

Sebagai alternatif, anda boleh mengubah suai bentuk tatasusunan sebelum kepada operasi mengikut unsur untuk memastikan ia boleh disiarkan.

Nota Tambahan

  • Jika kedua-dua tatasusunan adalah jenis numpy.matrix, pengendali asterisk boleh digunakan untuk pendaraban matriks.
  • Apabila menggunakan dot() pada tatasusunan bentuk yang tidak serasi, anda akan menerima "ValueError: matriks tidak diselaraskan."
  • Untuk penjelasan menyeluruh tentang peraturan penyiaran, rujuk dokumentasi NumPy.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'ValueError: operan tidak dapat disiarkan bersama' dalam Operasi Element-Wise NumPy?. 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