Numpy Append Two Arrays

Numpy Append Two Arrays

Numpy is a fundamental package for scientific computing in Python. It provides a high-performance multidimensional array object, and tools for working with these arrays. One common operation when working with arrays is appending one array to another. In this article, we will explore how to use the numpy.append() function to concatenate two arrays along a specified axis.

Introduction to Numpy Append

The numpy.append() function is used to merge two arrays into one. The function can handle arrays of different dimensions and automatically flattens them if not specified otherwise. This function is part of the Numpy library, which needs to be imported before using the function.

Syntax of numpy.append()

The basic syntax of numpy.append() is as follows:

numpy.append(arr, values, axis=None)
  • arr: This is the array to which values are appended.
  • values: These are the values that are appended to arr. It must be of the same type as arr.
  • axis: This is the axis along which the arrays will be appended. If axis is not provided, both arrays are flattened before use.

Examples of Appending Arrays

Let’s go through several examples to understand how to append arrays using Numpy.

Example 1: Appending Arrays Without Axis

In this example, we append two 1D arrays without specifying the axis, which results in a flattened array.

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.append(arr1, arr2)

print(result)

Output:

Numpy Append Two Arrays

Example 2: Appending Arrays Along Axis 0

Appending two 2D arrays along axis 0 (rows).

import numpy as np

arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])
result = np.append(arr1, arr2, axis=0)

print(result)

Output:

Numpy Append Two Arrays

Example 3: Appending Arrays Along Axis 1

Appending two 2D arrays along axis 1 (columns).

import numpy as np

arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])
result = np.append(arr1, arr2, axis=1)

print(result)

Output:

Numpy Append Two Arrays

Example 4: Using Append with Multidimensional Arrays

Appending two 3D arrays along a specified axis.

import numpy as np

arr1 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
arr2 = np.array([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])
result = np.append(arr1, arr2, axis=1)

print(result)

Output:

Numpy Append Two Arrays

Example 5: Flattening and Appending Arrays

You can flatten arrays before appending to combine them into a single 1D array.

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
result = np.append(arr1, arr2)

print(result)

Output:

Numpy Append Two Arrays

Example 6: Appending Arrays with np.concatenate

An alternative to np.append() is using np.concatenate(), which can also be used to join arrays along a specified axis.

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.concatenate((arr1, arr2))

print(result)

Output:

Numpy Append Two Arrays

Example 7: Appending Arrays with Different Data Types

When appending arrays with different data types, Numpy will upcast to a common type.

import numpy as np

arr1 = np.array([1, 2, 3], dtype=np.int32)
arr2 = np.array([4.5, 5.5, 6.5], dtype=np.float64)
result = np.append(arr1, arr2)

print(result)

Output:

Numpy Append Two Arrays

Example 8: Appending Arrays and Keeping Dimensions

To keep the dimensions of the original arrays when appending, you can use np.newaxis to add an axis and then append.

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr1 = arr1[:, np.newaxis]
arr2 = arr2[:, np.newaxis]
result = np.append(arr1, arr2, axis=1)

print(result)

Output:

Numpy Append Two Arrays

Numpy Append Two Arrays Conclusion

In this article, we explored how to use the numpy.append() function to concatenate two arrays in Numpy. We covered various scenarios including appending arrays of different dimensions, shapes, and data types. The examples provided should help you understand how to effectively use this function in your data manipulation tasks. Remember, while numpy.append() is convenient, it may not always be the most efficient method for large arrays or in performance-critical code. In such cases, pre-allocating an array and filling it, or using functions like numpy.concatenate(), might be more efficient.