What is the difference between NumPy append
and concatenate
?
My observation is that concatenate
is a bit faster and append
flattens the array if axis is not specified.
In [52]: print a
[[1 2]
[3 4]
[5 6]
[5 6]
[1 2]
[3 4]
[5 6]
[5 6]
[1 2]
[3 4]
[5 6]
[5 6]
[5 6]]
In [53]: print b
[[1 2]
[3 4]
[5 6]
[5 6]
[1 2]
[3 4]
[5 6]
[5 6]
[5 6]]
In [54]: timeit -n 10000 -r 5 np.concatenate((a, b))
10000 loops, best of 5: 2.05 μs per loop
In [55]: timeit -n 10000 -r 5 np.append(a, b, axis = 0)
10000 loops, best of 5: 2.41 μs per loop
In [58]: np.concatenate((a, b))
Out[58]:
array([[1, 2],
[3, 4],
[5, 6],
[5, 6],
[1, 2],
[3, 4],
[5, 6],
[5, 6],
[1, 2],
[3, 4],
[5, 6],
[5, 6],
[5, 6],
[1, 2],
[3, 4],
[5, 6],
[5, 6],
[1, 2],
[3, 4],
[5, 6],
[5, 6],
[5, 6]])
In [59]: np.append(a, b, axis = 0)
Out[59]:
array([[1, 2],
[3, 4],
[5, 6],
[5, 6],
[1, 2],
[3, 4],
[5, 6],
[5, 6],
[1, 2],
[3, 4],
[5, 6],
[5, 6],
[5, 6],
[1, 2],
[3, 4],
[5, 6],
[5, 6],
[1, 2],
[3, 4],
[5, 6],
[5, 6],
[5, 6]])
In [60]: np.append(a, b)
Out[60]:
array([1, 2, 3, 4, 5, 6, 5, 6, 1, 2, 3, 4, 5, 6, 5, 6, 1, 2, 3, 4, 5, 6, 5,
6, 5, 6, 1, 2, 3, 4, 5, 6, 5, 6, 1, 2, 3, 4, 5, 6, 5, 6, 5, 6])
See Question&Answers more detail:
os