функції ravel () та flatten () від numpy - це дві техніки, які я б тут спробував. Я хотів би додати до стовпів зроблених Джо , Siraj , міхур і KEVAD .
Ravel:
A = M.ravel()
print A, A.shape
>>> [1 2 3 4] (4,)
Вирівняти:
M = np.array([[1], [2], [3], [4]])
A = M.flatten()
print A, A.shape
>>> [1 2 3 4] (4,)
numpy.ravel()
швидше , оскільки це функція рівня бібліотеки, яка не робить жодної копії масиву. Однак будь-яка зміна масиву A перенесе себе на початковий масив M, якщо ви використовуєтеnumpy.ravel()
.
numpy.flatten()
повільніше, ніжnumpy.ravel()
. Але якщо ви використовуєте numpy.flatten()
для створення А, то зміни в НЕ будуть перенесені на оригінальний масив M .
numpy.squeeze()
і M.reshape(-1)
повільніше, ніж numpy.flatten()
і 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