Tugasan Numpy Array: Perbezaan Peruntukan Memori
Dalam NumPy, terdapat tiga cara biasa untuk menetapkan nilai kepada tatasusunan:
B = A
Apabila anda menggunakan B = A, anda tidak mencipta tatasusunan baharu. Sebaliknya, anda sedang mengikat nama baharu (B) pada tatasusunan sedia ada (A). Akibatnya, sebarang pengubahsuaian yang dibuat pada satu tatasusunan akan dicerminkan dalam tatasusunan yang lain.
B[:] = A
Sintaks ini mencipta tatasusunan baharu B dengan dimensi dan nilai yang sama seperti A. Tatasusunan asal A tidak diubah suai. Kaedah ini memerlukan kurang peruntukan memori berbanding numpy.copy.
numpy.copy(B, A)
Kaedah ini tidak sah seperti yang anda tulis. Ia sepatutnya B = numpy.copy(A). numpy.copy mencipta tatasusunan baharu B dengan dimensi dan nilai yang sama seperti A. Kaedah ini memerlukan lebih banyak peruntukan memori berbanding B[:] = A kerana ia mencipta salinan fizikal data yang berasingan daripada tatasusunan asal.
Bilakah Memori Tambahan Diperuntukkan?
Memori tambahan diperuntukkan apabila anda menggunakan numpy.copy untuk mencipta salinan fizikal baharu tatasusunan. Ini kerana ia memperuntukkan blok memori bersebelahan baharu untuk data yang disalin.
Bilakah Memori Tidak Diperuntukkan?
Memori tidak diperuntukkan apabila anda menggunakan B = A kerana anda hanya menamakan semula tatasusunan asal. Memori juga tidak diperuntukkan apabila anda menggunakan B[:] = A kerana ia menggunakan semula lokasi memori yang sama seperti tatasusunan asal.
Atas ialah kandungan terperinci Bilakah Memori Tambahan Diperuntukkan dalam Tugasan Array NumPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!