Numpy Tutorial

Creating NumPy Array

NumPy Array Manipulation

Matrix in NumPy

Operations on NumPy Array

Reshaping NumPy Array

Indexing NumPy Array

Arithmetic operations on NumPy Array

Linear Algebra in NumPy Array

NumPy and Random Data

Sorting and Searching in NumPy Array

Universal Functions

Working With Images

Projects and Applications with NumPy

Numpy - Binary Operations

Let's delve into binary operations in NumPy. Binary operations refer to operations that are performed on two arrays, element-wise.

1. Introduction:

In NumPy, binary operations are quite straightforward and are performed on an element-wise basis. This means that the operation is applied to each corresponding pair of elements from the two arrays.

2. Basic Setup:

Installation:

If you haven't installed NumPy, you can do so with:

pip install numpy

Importing:

Start by importing NumPy:

import numpy as np

3. Basic Binary Operations:

Addition:

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

result = np.add(a, b)
print(result)  # Output: [5 7 9]

Subtraction:

result = np.subtract(b, a)
print(result)  # Output: [3 3 3]

Multiplication:

result = np.multiply(a, b)
print(result)  # Output: [ 4 10 18]

Division:

result = np.divide(b, a)
print(result)  # Output: [4. 2.5 2.]

4. Bitwise Operations:

NumPy provides bitwise operations, suitable for integer arrays.

Bitwise AND:

a = np.array([1, 2, 3], dtype=np.uint8)
b = np.array([4, 5, 6], dtype=np.uint8)

result = np.bitwise_and(a, b)
print(result)  # Output: [0 0 2]

Bitwise OR:

result = np.bitwise_or(a, b)
print(result)  # Output: [5 7 7]

Bitwise XOR:

result = np.bitwise_xor(a, b)
print(result)  # Output: [5 7 5]

Bitwise NOT:

result = np.bitwise_not(a)
print(result)  # Output: [254 253 252] for uint8 type

5. Comparison Operations:

Greater:

result = np.greater(a, b)
print(result)  # Output: [False False False]

Less:

result = np.less(a, b)
print(result)  # Output: [True True True]

Equal:

result = np.equal(a, b)
print(result)  # Output: [False False False]

6. Conclusion:

Binary operations in NumPy are powerful tools that can be utilized to perform element-wise operations on arrays. Whether it's arithmetic operations, bitwise operations, or comparison operations, NumPy provides intuitive and efficient functions for handling binary operations on arrays.

1. Binary operations in NumPy arrays:

Description: NumPy supports a variety of binary operations on arrays, including arithmetic, comparison, bitwise, and logical operations.

Code:

import numpy as np

# Create two NumPy arrays
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])

# Binary arithmetic operations
addition_result = array1 + array2
multiplication_result = array1 * array2

print("Array 1:")
print(array1)
print("Array 2:")
print(array2)
print("Addition Result:")
print(addition_result)
print("Multiplication Result:")
print(multiplication_result)

2. Performing bitwise operations in NumPy:

Description: Bitwise operations in NumPy allow element-wise manipulation of binary representations of integers.

Code:

import numpy as np

# Create a NumPy array
array = np.array([2, 5, 7])

# Bitwise AND operation
result_and = array & 3

print("Original Array:")
print(array)
print("Bitwise AND Result:")
print(result_and)

3. Element-wise binary operations in NumPy:

Description: NumPy performs element-wise binary operations, applying the operation to corresponding elements of arrays.

Code:

import numpy as np

# Create two NumPy arrays
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])

# Element-wise binary operations
bitwise_and_result = np.bitwise_and(array1, array2)
bitwise_or_result = np.bitwise_or(array1, array2)

print("Array 1:")
print(array1)
print("Array 2:")
print(array2)
print("Bitwise AND Result:")
print(bitwise_and_result)
print("Bitwise OR Result:")
print(bitwise_or_result)

4. NumPy binary arithmetic operations:

Description: NumPy supports various binary arithmetic operations, such as addition, subtraction, multiplication, and division.

Code:

import numpy as np

# Create two NumPy arrays
array1 = np.array([10, 20, 30])
array2 = np.array([2, 5, 10])

# Binary arithmetic operations
addition_result = np.add(array1, array2)
multiplication_result = np.multiply(array1, array2)

print("Array 1:")
print(array1)
print("Array 2:")
print(array2)
print("Addition Result:")
print(addition_result)
print("Multiplication Result:")
print(multiplication_result)

5. Boolean array operations in NumPy:

Description: NumPy allows boolean array operations, including element-wise logical operations and comparisons.

Code:

import numpy as np

# Create two NumPy arrays
array1 = np.array([True, True, False])
array2 = np.array([False, True, True])

# Boolean array operations
logical_and_result = np.logical_and(array1, array2)
logical_or_result = np.logical_or(array1, array2)

print("Array 1:")
print(array1)
print("Array 2:")
print(array2)
print("Logical AND Result:")
print(logical_and_result)
print("Logical OR Result:")
print(logical_or_result)

6. NumPy bitwise shift operations:

Description: Bitwise shift operations in NumPy allow shifting the bits of array elements left or right.

Code:

import numpy as np

# Create a NumPy array
array = np.array([2, 4, 8])

# Bitwise shift operations
left_shift_result = np.left_shift(array, 1)
right_shift_result = np.right_shift(array, 1)

print("Original Array:")
print(array)
print("Left Shift Result:")
print(left_shift_result)
print("Right Shift Result:")
print(right_shift_result)

7. Binary comparison operations in NumPy:

Description: NumPy supports binary comparison operations, such as greater than, less than, equal to, etc.

Code:

import numpy as np

# Create two NumPy arrays
array1 = np.array([1, 2, 3])
array2 = np.array([2, 2, 2])

# Binary comparison operations
greater_than_result = np.greater(array1, array2)
less_than_or_equal_result = np.less_equal(array1, array2)

print("Array 1:")
print(array1)
print("Array 2:")
print(array2)
print("Greater Than Result:")
print(greater_than_result)
print("Less Than or Equal Result:")
print(less_than_or_equal_result)

8. Logical operations with NumPy arrays:

Description: NumPy supports logical operations on arrays, such as logical_and, logical_or, and logical_not.

Code:

import numpy as np

# Create two NumPy arrays
array1 = np.array([True, False, True])
array2 = np.array([False, True, True])

# Logical operations
logical_and_result = np.logical_and(array1, array2)
logical_or_result = np.logical_or(array1, array2)
logical_not_result = np.logical_not(array1)

print("Array 1:")
print(array1)
print("Array 2:")
print(array2)
print("Logical AND Result:")
print(logical_and_result)
print("Logical OR Result:")
print(logical_or_result)
print("Logical NOT Result:")
print(logical_not_result)

9. NumPy binary operations examples:

Description: Combining various binary operations in NumPy to perform complex tasks.

Code:

import numpy as np

# Create two NumPy arrays
array1 = np.array([1, 0, 1, 0])
array2 = np.array([0, 1, 0, 1])

# Complex binary operations
result = (np.logical_and(array1, array2)) | (np.left_shift(array1, 1) & np.right_shift(array2, 1))

print("Array 1:")
print(array1)
print("Array 2:")
print(array2)
print("Result:")
print(result)