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