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
Kod ini akan menimbulkan ValueError kerana dimensi tidak serasi:
(97,2) x (2,1)
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)
Sebagai alternatif, anda boleh mengubah suai bentuk tatasusunan sebelum kepada operasi mengikut unsur untuk memastikan ia boleh disiarkan.
Nota Tambahan
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!