Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Pendaraban Matriks NumPy Gagal dengan Ralat Penyiaran?

Mengapa Pendaraban Matriks NumPy Gagal dengan Ralat Penyiaran?

Susan Sarandon
Lepaskan: 2024-12-19 15:31:09
asal
438 orang telah melayarinya

Why Does NumPy Matrix Multiplication Fail with a Broadcasting Error?

Ralat Penyiaran dalam Pendaraban Matriks NumPy

Apabila melakukan pendaraban matriks antara dua tatasusunan NumPy, adalah penting untuk memastikan bentuknya serasi. Walau bagaimanapun, penggunaan operator pendaraban (*) yang salah boleh menyebabkan ralat "ValueError: operan tidak dapat disiarkan bersama-sama bentuk".

Pertimbangkan dua tatasusunan: X dengan bentuk (m, n) dan y dengan bentuk (n, 1). Operasi yang dimaksudkan ialah pendaraban matriks, yang sepatutnya menghasilkan vektor (m, 1). Walau bagaimanapun, operator pendaraban dalam NumPy digunakan untuk operasi mengikut unsur, yang memerlukan penyiaran untuk menjajarkan dimensi.

Dalam contoh yang diberikan, peraturan penyiaran dilanggar kerana dimensi pertama X (97) bercanggah dengan dimensi sepadan y (2). Oleh itu, operasi pendaraban gagal dan mencetuskan ralat.

Untuk melakukan pendaraban matriks, anda harus menggunakan kaedah dot(). Kaedah ini direka khusus untuk operasi matriks dan memastikan penjajaran dimensi yang betul. Menggunakan dot() dan bukannya * menyelesaikan isu penyiaran dan menghasilkan vektor yang dijangkakan (m, 1).

Selain itu, ambil perhatian bahawa menggunakan jenis matriks dalam NumPy (numpy.matrix) boleh merumitkan operasi. Secara umumnya disyorkan untuk menggunakan numpy.ndarray untuk tatasusunan sebaliknya.

Atas ialah kandungan terperinci Mengapa Pendaraban Matriks NumPy Gagal dengan Ralat Penyiaran?. 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