8
Qual è la differenza tra NumPy append
e concatenate
?NumPy append vs concatenato
La mia osservazione è che concatenate
è un po 'più veloce e append
appiattisce l'array se l'asse non è specificato.
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])
'np.append' è definito in giri di' np.concatenate' Vedi https://github.com/numpy/numpy/blob/v1.10.0 /numpy/lib/function_base.py#L4098-L4150 –
Possibile duplicato di [quando dovrei usare hstack/vstack vs append vs concatenato vs colonna \ _stack] (http://stackoverflow.com/questions/33356442/when-should- i-use-hstack-vstack-vs-accodamento-vs-concatenare-vs-colonna-stack) – Simon