fungsi ravel () dan flatten () dari numpy adalah dua teknik yang akan saya coba di sini. Saya ingin menambahkan posting yang dibuat oleh Joe , Siraj , bubble , dan Kevad .
Berlepasan:
A = M.ravel()
print A, A.shape
>>> [1 2 3 4] (4,)
Meratakan:
M = np.array([[1], [2], [3], [4]])
A = M.flatten()
print A, A.shape
>>> [1 2 3 4] (4,)
numpy.ravel()
lebih cepat , karena ini adalah fungsi tingkat pustaka yang tidak membuat salinan array. Namun, setiap perubahan dalam array A akan membawa dirinya sendiri ke array asli M jika Anda menggunakannumpy.ravel()
.
numpy.flatten()
lebih lambat darinumpy.ravel()
. Tetapi jika Anda menggunakan numpy.flatten()
untuk membuat A, maka perubahan dalam A tidak akan terbawa ke array M asli .
numpy.squeeze()
dan M.reshape(-1)
lebih lambat dari numpy.flatten()
dan numpy.ravel()
.
%timeit M.ravel()
>>> 1000000 loops, best of 3: 309 ns per loop
%timeit M.flatten()
>>> 1000000 loops, best of 3: 650 ns per loop
%timeit M.reshape(-1)
>>> 1000000 loops, best of 3: 755 ns per loop
%timeit np.squeeze(M)
>>> 1000000 loops, best of 3: 886 ns per loop