Saya punya numpy_array. Sesuatu seperti [ a b c ]
.
Dan kemudian saya ingin menambahkannya ke array NumPy lain (sama seperti kita membuat daftar daftar). Bagaimana cara membuat array array NumPy yang berisi array NumPy?
Saya mencoba melakukan yang berikut tanpa hasil
>>> M = np.array([])
>>> M
array([], dtype=float64)
>>> M.append(a,axis=0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'append'
>>> a
array([1, 2, 3])
Jawaban:
atau ini:
sumber
vstack()
ide Sven . Anda tahu Anda bisa membuat array denganarray([[1,2,3],[2,3,4]])
, kan?numpy.vstack
dapat menerima lebih dari 2 array dalam argumen urutan. Jadi, jika Anda perlu menggabungkan lebih dari 2 array, vstack lebih praktis.concatenate
juga dapat mengambil beberapa arrayNah, pesan kesalahan mengatakan semuanya: Array NumPy tidak memiliki
append()
metode. Namun ada fungsi gratisnumpy.append()
:Ini akan membuat array baru alih-alih bermutasi
M
di tempatnya. Perhatikan bahwa menggunakannumpy.append()
melibatkan penyalinan kedua array. Anda akan mendapatkan kode berkinerja lebih baik jika Anda menggunakan array NumPy berukuran tetap.sumber
numpy.vstack()
.Anda dapat menggunakan
numpy.append()
...Ini tidak akan membuat dua array terpisah tetapi akan menambahkan dua array menjadi satu array dimensi.
sumber
Sven mengatakan itu semua, hanya akan sangat berhati-hati karena penyesuaian tipe otomatis ketika append dipanggil.
Seperti yang Anda lihat berdasarkan konten, dtype berubah dari int64 ke float32, dan kemudian ke S1
sumber
Saya menemukan tautan ini sambil mencari sesuatu yang sedikit berbeda, bagaimana cara mulai menambahkan objek array ke kosong array numpy , tetapi mencoba semua solusi pada halaman ini tetapi tidak berhasil.
Lalu saya menemukan pertanyaan dan jawaban ini: Bagaimana cara menambahkan baris baru ke array numpy kosong
Intinya di sini:
Kemudian Anda dapat menggunakan gabungan untuk menambahkan baris seperti ini:
arr = np.concatenate( ( arr, [[x, y, z]] ) , axis=0)
Lihat juga https://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html
sumber
Sebenarnya seseorang selalu dapat membuat daftar array numpy biasa dan mengubahnya nanti.
sumber
Saya memiliki masalah yang sama, dan saya tidak bisa mengomentari jawaban @Sven Marnach (tidak cukup perwakilan, ya ampun saya ingat ketika Stackoverflow pertama kali dimulai ...).
Menambahkan daftar angka acak ke matriks 10 X 10.
Menggunakan np.zeros () array dibuat dengan 1 x 10 nol.
Kemudian daftar 10 angka acak dibuat menggunakan np.random dan ditugaskan ke daftar acak. Loopnya menumpuk 10 tinggi. Kami hanya harus ingat untuk menghapus entri kosong pertama.
Jadi dalam suatu fungsi:
array 7 x 7 menggunakan angka acak 0 - 1000
sumber
Jika saya mengerti pertanyaan Anda, ini satu cara. Katakanlah Anda memiliki:
jadi inilah beberapa kode ...
Yang mengarah ke:
sumber
Coba kode ini:
Anda juga dapat menggunakan larik alih-alih "a"
sumber