Numpy'nin ravel () ve flatten () işlevleri, burada deneyeceğim iki tekniktir. Joe , Siraj , kabarcık ve Kevad tarafından yapılan gönderilere eklemek isterim .
Ravel:
A = M.ravel()
print A, A.shape
>>> [1 2 3 4] (4,)
Düzleştirmek:
M = np.array([[1], [2], [3], [4]])
A = M.flatten()
print A, A.shape
>>> [1 2 3 4] (4,)
numpy.ravel()
dizinin herhangi bir kopyasını almayan kütüphane düzeyinde bir işlev olduğundan daha hızlıdır . Ancak, A dizisindeki herhangi bir değişiklik, kullanıyorsanız orijinal M dizisine geçernumpy.ravel()
.
numpy.flatten()
daha yavaştırnumpy.ravel()
. Ancak numpy.flatten()
A oluşturmak için kullanıyorsanız , A'daki değişiklikler orijinal M dizisine taşınmaz .
numpy.squeeze()
ve M.reshape(-1)
daha yavaş numpy.flatten()
ve 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