Jawaban:
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 dari numpy.ndarray.__array__
. numpy.array
dimulai pada _array_fromobject
, setidaknya dalam implementasi saat ini.
numpy.array
adalah fungsi yang mengembalikan a numpy.ndarray
. Tidak ada tipe objek numpy.array.
Hanya beberapa baris kode contoh untuk menunjukkan perbedaan antara numpy.array dan numpy.ndarray
Langkah pemanasan: Buat daftar
a = [1,2,3]
Periksa tipenya
print(type(a))
Kamu akan mendapatkan
<class 'list'>
Bangun sebuah array (dari daftar) menggunakan np.array
a = np.array(a)
Atau, Anda bisa melewatkan langkah pemanasan, langsung miliki
a = np.array([1,2,3])
Periksa tipenya
print(type(a))
Kamu akan mendapatkan
<class 'numpy.ndarray'>
yang memberitahu Anda jenis array numpy adalah numpy.ndarray
Anda juga dapat memeriksa jenisnya berdasarkan
isinstance(a, (np.ndarray))
dan kamu akan mendapatkan
True
Salah satu dari dua baris berikut ini akan memberi Anda pesan kesalahan
np.ndarray(a) # should be np.array(a)
isinstance(a, (np.array)) # should be isinstance(a, (np.ndarray))
numpy.ndarray()
adalah kelas, sedangkan numpy.array()
metode / fungsi untuk membuat ndarray
.
Dalam numpy docs jika Anda ingin membuat array dari ndarray
kelas, Anda dapat melakukannya dengan 2 cara seperti dikutip:
1- menggunakan array()
, zeros()
atau empty()
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:
np.ndarray(shape=(2,2), dtype=float, order='F', buffer=None) array([[ -1.13698227e+002, 4.25087011e-303], [ 2.88528414e-306, 3.27025015e-309]]) #random
contoh lain adalah menetapkan objek array ke buffer contoh:
>>> np.ndarray((2,), buffer=np.array([1,2,3]), ... offset=np.int_().itemsize, ... dtype=int) # offset = 1*itemsize, i.e. skip first element array([2, 3])
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 membuat numpy.ndarray()
objek "
Saya pikir dengan np.array()
Anda hanya dapat membuat C seperti meskipun Anda menyebutkan urutan, ketika Anda memeriksa menggunakannya np.isfortran()
mengatakan salah. tetapi dengan np.ndarrray()
ketika Anda menentukan pesanan itu dibuat berdasarkan pesanan yang disediakan.