Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Saya Mendapat Ralat 'operand tidak dapat disiarkan bersama' dalam NumPy?
Memahami Ralat: 'operand tidak dapat disiarkan bersama' dalam NumPy
Apabila bekerja dengan tatasusunan NumPy, adalah penting untuk memberi perhatian kepada bentuk tatasusunan untuk mengelakkan ralat penyiaran. Dalam senario yang diberikan, anda mengalami ralat "ValueError: operan tidak dapat disiarkan bersama-sama bentuk."
Ralat ini berlaku kerana pengendali NumPy, seperti *, melaksanakan operasi mengikut unsur secara lalai. Walau bagaimanapun, jika tatasusunan mempunyai bentuk yang berbeza, NumPy cuba menyiarkannya, yang boleh membawa kepada isu keserasian.
Peraturan dan Keserasian Penyiaran
Penyiaran melibatkan pengembangan dimensi satu atau kedua-dua tatasusunan untuk menjadikannya serasi untuk operasi mengikut unsur. Dimensi saiz 1 atau dimensi yang tiada boleh disiarkan.
Dalam kes anda, X mempunyai bentuk (97, 2) dan y mempunyai bentuk (2, 1). Menyiarkan dimensi akan mengakibatkan:
97 2 2 1
Seperti yang anda lihat, dimensi pertama (97 dan 2) bercanggah. Mengikut peraturan penyiaran, dimensi bercanggah mestilah sama atau salah satu daripadanya hendaklah 1.
Menyelesaikan Ralat Penyiaran
Untuk menyelesaikan isu ini, anda perlu memastikan bahawa dimensi tatasusunan adalah serasi. Dalam kes anda, anda boleh menggunakan produk titik NumPy, yang melaksanakan pendaraban matriks:
X.dot(y)
Pendaraban matriks mengikut peraturan keserasian yang berbeza, memastikan bilangan lajur dalam tatasusunan pertama sepadan dengan bilangan baris dalam baris kedua tatasusunan. Memandangkan X mempunyai 2 lajur dan y mempunyai 2 baris, pendaraban matriks adalah sah, menghasilkan vektor dengan bentuk (97, 1).
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'operand tidak dapat disiarkan bersama' dalam NumPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!