2016-03-11 5 views
8

NumPy append और concatenate के बीच क्या अंतर है?NumPy append बनाम concatenate

मेरा अवलोकन यह है कि concatenate थोड़ा तेज़ है और append अक्ष निर्दिष्ट नहीं होने पर सरणी को फ़्लैट करता है।

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]) 
+1

'np.append' के घुमावों में परिभाषित किया गया है' np.concatenate' https://github.com/numpy/numpy/blob/v1.10.0 देखें /numpy/lib/function_base.py#L4098-L4150 –

+2

संभावित डुप्लिकेट [जब मुझे hstack/vstack बनाम जोड़ना चाहिए बनाम बनाम कॉलम \ _stack] (http://stackoverflow.com/questions/33356442/when-should- मैं उपयोग-hstack-vstack-बनाम-संलग्न-बनाम-CONCATENATE-बनाम-स्तंभ-ढेर) – Simon

उत्तर

16

np.appendnp.concatenate उपयोग करता है:

def append(arr, values, axis=None): 
    arr = asanyarray(arr) 
    if axis is None: 
     if arr.ndim != 1: 
      arr = arr.ravel() 
     values = ravel(values) 
     axis = arr.ndim-1 
    return concatenate((arr, values), axis=axis) 
संबंधित मुद्दे