NumPy append()
NumPy's `append()` function is used to add elements to the end of an existing array, effectively creating a new array with the additional elements. This operation is useful when you need to expand the contents of an array dynamically.
Usage
The `append()` function is typically used when you want to add more data to an array without altering the original array. It returns a new array with the appended values.
numpy.append(arr, values, axis=None)
arr: The input array to which elements are appended.values: The values to be appended toarr. Note that ifvalueshave a different data type thanarr, the resulting array will have a data type determined by NumPy’s type promotion rules.axis: The axis along whichvaluesare appended. IfNone,valuesare flattened before use. Whenaxisis specified,valuesmust have the same shape asarrexcept for the dimension corresponding to the specified axis.
Examples
1. Appending to a 1D Array
import numpy as np
arr = np.array([1, 2, 3])
new_arr = np.append(arr, [4, 5])
In this example, the elements [4, 5] are appended to the array arr, resulting in new_arr being [1, 2, 3, 4, 5].
2. Appending to a 2D Array Without Axis
import numpy as np
arr = np.array([[1, 2], [3, 4]])
new_arr = np.append(arr, [5, 6])
Here, append() flattens arr and then appends [5, 6], resulting in new_arr being [1, 2, 3, 4, 5, 6].
3. Appending to a 2D Array Along an Axis
import numpy as np
arr = np.array([[1, 2], [3, 4]])
new_arr = np.append(arr, [[5, 6]], axis=0)
Here, [[5, 6]] is appended as a new row to arr along axis 0, creating new_arr as [[1, 2], [3, 4], [5, 6]].
Tips and Best Practices
- Avoid frequent appends. Repeatedly calling
append()in a loop can be inefficient; consider using lists for accumulation and converting them to arrays after all data is collected. - Use axis carefully. When using the
axisparameter, ensure that the dimensions ofvaluesmatch those ofarralong the specified axis. For example, if appending along axis0,valuesshould have the same number of columns asarr. - Remember immutability.
append()does not modify the original array but creates a new one, so ensure you store the result if needed. - Be mindful of performance. Appending to large arrays can be resource-intensive; consider alternative methods for efficiency.