Bird
Raised Fist0
NumPydata~5 mins

Creating boolean arrays in NumPy

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

Boolean arrays help us mark True or False values for data. They are useful to filter or select data easily.

To mark which data points meet a condition, like scores above 50.
To filter rows in a table where a condition is True.
To create masks for images or data to highlight certain parts.
To quickly check if elements in an array satisfy a rule.
To combine multiple conditions for data selection.
Syntax
NumPy
import numpy as np

# Create a boolean array from a condition
array = np.array([1, 2, 3, 4, 5])
boolean_array = array > 3

# Create a boolean array directly
bool_array = np.array([True, False, True])

You can create boolean arrays by comparing arrays with conditions like >, <, ==.

Boolean arrays have values True or False only.

Examples
Boolean array from an empty array results in an empty boolean array.
NumPy
import numpy as np

# Empty array
empty_array = np.array([])
boolean_empty = empty_array > 0
print(boolean_empty)
Boolean array with one element shows True if condition matches.
NumPy
import numpy as np

# Single element array
single_element_array = np.array([10])
boolean_single = single_element_array == 10
print(boolean_single)
Boolean array marks True where elements equal 5, including first and last positions.
NumPy
import numpy as np

# Condition at the start and end
array = np.array([5, 3, 7, 1, 5])
boolean_condition = (array == 5)
print(boolean_condition)
Sample Program

This program creates a boolean array by checking which numbers are greater than 5. Then it uses this boolean array to select only those numbers from the original array.

NumPy
import numpy as np

# Create an array of numbers
numbers = np.array([2, 4, 6, 8, 10])
print("Original array:", numbers)

# Create a boolean array where numbers are greater than 5
greater_than_five = numbers > 5
print("Boolean array (numbers > 5):", greater_than_five)

# Use boolean array to filter numbers
filtered_numbers = numbers[greater_than_five]
print("Filtered numbers (only > 5):", filtered_numbers)
OutputSuccess
Important Notes

Time complexity: Creating a boolean array is O(n), where n is the number of elements.

Space complexity: Boolean arrays use less memory than integer arrays but still proportional to n.

Common mistake: Forgetting that boolean arrays are masks and must be used to index the original array for filtering.

Use boolean arrays when you want to select or mark elements based on conditions. For simple checks, use direct comparisons.

Summary

Boolean arrays store True/False values for each element.

They are created by applying conditions to arrays.

Boolean arrays help filter or select data easily.

Practice

(1/5)
1. What does a boolean array in numpy represent?
easy
A. An array of integers only
B. An array of True/False values based on a condition
C. An array of strings
D. An array with only zeros

Solution

  1. Step 1: Understand boolean arrays

    A boolean array stores True or False for each element, usually from a condition.
  2. Step 2: Identify the correct description

    The description 'An array of True/False values based on a condition' matches what a boolean array represents. Others refer to integers, strings, or zeros.
  3. Final Answer:

    An array of True/False values based on a condition -> Option B
  4. Quick Check:

    Boolean array = True/False values [OK]
Hint: Boolean arrays always hold True or False values [OK]
Common Mistakes:
  • Thinking boolean arrays hold numbers or strings
  • Confusing boolean arrays with integer arrays
2. Which of the following is the correct way to create a boolean array from a numpy array arr to check where elements are greater than 5?
easy
A. bool_arr = arr > 5
B. bool_arr = arr == 5
C. bool_arr = arr >= 5
D. bool_arr = arr < 5

Solution

  1. Step 1: Understand the condition for boolean array

    We want True where elements are greater than 5, so the condition is arr > 5.
  2. Step 2: Match the correct syntax

    bool_arr = arr > 5 uses arr > 5, which is correct. arr >= 5 checks greater than or equal to 5, arr == 5 checks equality to 5, and arr < 5 checks less than 5.
  3. Final Answer:

    bool_arr = arr > 5 -> Option A
  4. Quick Check:

    Condition for > 5 is arr > 5 [OK]
Hint: Use comparison operators directly on arrays for boolean arrays [OK]
Common Mistakes:
  • Using == instead of > for greater than
  • Confusing >= with >
  • Using wrong comparison operator
3. What is the output of the following code?
import numpy as np
arr = np.array([2, 7, 4, 9])
bool_arr = arr < 5
print(bool_arr)
medium
A. [True False True False]
B. [False True False True]
C. [True True True True]
D. [False False False False]

Solution

  1. Step 1: Evaluate the condition arr < 5 for each element

    Elements: 2 < 5 is True, 7 < 5 is False, 4 < 5 is True, 9 < 5 is False.
  2. Step 2: Form the boolean array

    The boolean array is [True, False, True, False].
  3. Final Answer:

    [True False True False] -> Option A
  4. Quick Check:

    Check each element < 5 = [True False True False] [OK]
Hint: Check each element against condition to form True/False array [OK]
Common Mistakes:
  • Mixing up True and False values
  • Forgetting to use < operator correctly
4. Identify the error in this code that tries to create a boolean array for elements equal to 10:
import numpy as np
arr = np.array([10, 5, 10, 3])
bool_arr = arr = 10
print(bool_arr)
medium
A. Array should be a list, not np.array
B. Missing import statement for numpy
C. Using '=' instead of '==' for comparison
D. print statement syntax error

Solution

  1. Step 1: Check the comparison operator

    The code uses arr = 10 which assigns 10 to arr, not compares.
  2. Step 2: Correct operator for comparison

    To compare elements to 10, use arr == 10 to create a boolean array.
  3. Final Answer:

    Using '=' instead of '==' for comparison -> Option C
  4. Quick Check:

    Comparison needs '==' not '=' [OK]
Hint: Use '==' for comparison, '=' is assignment [OK]
Common Mistakes:
  • Using single '=' instead of '=='
  • Confusing assignment with comparison
5. Given a numpy array data = np.array([3, 8, 1, 6, 0]), how can you create a boolean array that is True for elements greater than 2 and less than 7?
hard
A. bool_arr = (data > 2) && (data < 7)
B. bool_arr = data > 2 or data < 7
C. bool_arr = data > 2 and data < 7
D. bool_arr = (data > 2) & (data < 7)

Solution

  1. Step 1: Understand element-wise logical operations in numpy

    Use bitwise operators & and | for element-wise AND/OR, not 'and' or 'or'.
  2. Step 2: Apply correct syntax for combined condition

    bool_arr = (data > 2) & (data < 7) uses (data > 2) & (data < 7), which is correct for element-wise AND.
  3. Final Answer:

    bool_arr = (data > 2) & (data < 7) -> Option D
  4. Quick Check:

    Use & for element-wise AND in numpy [OK]
Hint: Use & for element-wise AND, not 'and' [OK]
Common Mistakes:
  • Using 'and' instead of '&' for element-wise AND
  • Using '&&' which is invalid in Python
  • Using 'or' instead of '&' for AND condition