Apa perbedaan antara ndarray
dan array
di Numpy? Dan di mana saya dapat menemukan implementasi dalam kode sumber numpy?
242
Apa perbedaan antara ndarray
dan array
di Numpy? Dan di mana saya dapat menemukan implementasi dalam kode sumber numpy?
numpy.array
hanyalah fungsi kenyamanan untuk membuat ndarray
; ini bukan kelas itu sendiri.
Anda juga dapat membuat array menggunakan numpy.ndarray
, tetapi itu bukan cara yang disarankan. Dari dokumentasi numpy.ndarray
:
Array harus dibangun menggunakan
array
,zeros
atauempty
... Parameter yang diberikan di sini merujuk ke metode level rendah (ndarray(...)
) untuk membuat instance array.
Sebagian besar daging implementasi dalam kode C, di sini di multiarray , tetapi Anda dapat mulai melihat antarmuka ndarray di sini:
https://github.com/numpy/numpy/blob/master/numpy/core/numeric.py
np.array
itu bukan kelas, seperti yang sering saya lakukan.x = np.array([1,2.1,3])
if isinstance(x,np.array): # will give you a TypeError
array_getarray
adalah implementasi darinumpy.ndarray.__array__
.numpy.array
dimulai pada_array_fromobject
, setidaknya dalam implementasi saat ini.numpy.array
adalah fungsi yang mengembalikan anumpy.ndarray
. Tidak ada tipe objek numpy.array.sumber
Hanya beberapa baris kode contoh untuk menunjukkan perbedaan antara numpy.array dan numpy.ndarray
Langkah pemanasan: Buat daftar
Periksa tipenya
Kamu akan mendapatkan
Bangun sebuah array (dari daftar) menggunakan np.array
Atau, Anda bisa melewatkan langkah pemanasan, langsung miliki
Periksa tipenya
Kamu akan mendapatkan
yang memberitahu Anda jenis array numpy adalah numpy.ndarray
Anda juga dapat memeriksa jenisnya berdasarkan
dan kamu akan mendapatkan
Salah satu dari dua baris berikut ini akan memberi Anda pesan kesalahan
sumber
numpy.ndarray()
adalah kelas, sedangkannumpy.array()
metode / fungsi untuk membuatndarray
.Dalam numpy docs jika Anda ingin membuat array dari
ndarray
kelas, Anda dapat melakukannya dengan 2 cara seperti dikutip:1- menggunakan
array()
,zeros()
atauempty()
metode: Array harus dibangun menggunakan array, nol atau kosong (lihat bagian Lihat Juga di bawah). Parameter yang diberikan di sini merujuk ke metode tingkat rendah (ndarray(…)
) untuk membuat instance array.2- dari
ndarray
kelas secara langsung: Ada dua mode pembuatan array menggunakan__new__
: Jika buffer tidak ada, maka hanya bentuk, tipe, dan urutan yang digunakan. Jika buffer adalah objek yang mengekspos antarmuka buffer, maka semua kata kunci ditafsirkan.Contoh di bawah ini memberikan array acak karena kami tidak menetapkan nilai buffer:
contoh lain adalah menetapkan objek array ke buffer contoh:
dari contoh di atas kami perhatikan bahwa kami tidak dapat menetapkan daftar ke "buffer" dan kami harus menggunakan numpy.array () untuk mengembalikan objek ndarray untuk buffer
Kesimpulan: gunakan
numpy.array()
jika Anda ingin membuatnumpy.ndarray()
objek "sumber
Saya pikir dengan
np.array()
Anda hanya dapat membuat C seperti meskipun Anda menyebutkan urutan, ketika Anda memeriksa menggunakannyanp.isfortran()
mengatakan salah. tetapi dengannp.ndarrray()
ketika Anda menentukan pesanan itu dibuat berdasarkan pesanan yang disediakan.sumber