Dalam numpy seseorang dapat menggunakan objek 'sumbu baru' dalam sintaksis slicing untuk membuat sumbu dengan panjang satu, misalnya:
import numpy as np
print np.zeros((3,5))[:,np.newaxis,:].shape
# shape will be (3,1,5)
The negara dokumentasi yang satu juga dapat menggunakan None
bukan newaxis
, efeknya adalah persis sama.
Apakah ada alasan untuk memilih salah satu dari yang lain? Apakah ada preferensi umum atau panduan gaya? Kesan saya newaxis
lebih populer, mungkin karena lebih eksplisit. Jadi adakah alasan kenapa None
diijinkan?
None
yang lebih baik adalah optimalisasi kecepatan eksekusi, yang dapat memberikan manfaat waktu yang sangat kecil. Tetapi biasanya Anda harus memilihnp.newaxis
.newaxis = object()
(atau yang setara dengan level C) berada di luar jangkauan saya ... penggunaanNone
cukup rawan kesalahan. Saya memiliki fungsi dengan bug (telanjangreturn
yang seharusnya mengembalikan array boolean) dan saya mulai mendapatkan kesalahan karena ketidakcocokan bentuk. Butuh beberapa saat bagi saya untuk menyadari bahwa pengindeksan denganNone
tidak hanya meningkatkanIndexError
. Jika mereka menggunakan nilai sentinel "segar", saya menghindari 30 menit untuk mencoba memahami kesalahan ...