Bird
Raised Fist0
NumPydata~15 mins

Logical operations (and, or, not) in NumPy - Mini Project: Build & Apply

Choose your learning style10 modes available
Logical Operations with NumPy Arrays
📖 Scenario: Imagine you work in a store that tracks daily sales of two products. You want to find days when certain sales conditions are met using logical operations.
🎯 Goal: You will create two NumPy arrays representing daily sales of two products. Then, you will use logical and, or, and not operations to find days matching specific sales conditions.
📋 What You'll Learn
Create two NumPy arrays named product_a_sales and product_b_sales with exact daily sales values.
Create a threshold variable named threshold with the exact value 50.
Use logical operations np.logical_and, np.logical_or, and np.logical_not on the sales arrays.
Print the final results arrays exactly as specified.
💡 Why This Matters
🌍 Real World
Stores and businesses often analyze sales data to find days when multiple products perform well or need attention.
💼 Career
Data analysts and scientists use logical operations on arrays to filter and analyze large datasets efficiently.
Progress0 / 4 steps
1
Create sales data arrays
Import NumPy as np. Create two NumPy arrays called product_a_sales and product_b_sales with these exact values: [30, 60, 45, 80, 55] and [20, 70, 50, 40, 65] respectively.
NumPy
Hint

Use np.array([...]) to create the arrays with the exact numbers given.

2
Set sales threshold
Create a variable called threshold and set it to the integer value 50.
NumPy
Hint

Just assign the number 50 to the variable named threshold.

3
Apply logical operations
Create three variables: both_above using np.logical_and to find days when both products have sales above threshold, either_above using np.logical_or to find days when either product has sales above threshold, and not_a_above using np.logical_not to find days when product A sales are NOT above threshold.
NumPy
Hint

Use comparisons like product_a_sales > threshold inside the logical functions.

4
Print the results
Print the variables both_above, either_above, and not_a_above each on a separate line in this order.
NumPy
Hint

Use three separate print() statements for each variable in the order given.

Practice

(1/5)
1. Which NumPy function is used to perform a logical AND operation element-wise on two arrays?
easy
A. numpy.logical_and
B. numpy.and_
C. numpy.bitwise_and
D. numpy.logical_or

Solution

  1. Step 1: Understand logical AND operation in NumPy

    Logical AND combines two boolean arrays and returns True only where both are True.
  2. Step 2: Identify the correct NumPy function

    numpy.logical_and is the function designed for element-wise logical AND on boolean arrays.
  3. Final Answer:

    numpy.logical_and -> Option A
  4. Quick Check:

    AND operation = numpy.logical_and [OK]
Hint: AND operation in NumPy uses logical_and function [OK]
Common Mistakes:
  • Confusing bitwise_and with logical_and
  • Using logical_or instead of logical_and
  • Using and_ which is not a NumPy function
2. Which of the following is the correct syntax to apply a logical NOT operation on a NumPy array a?
easy
A. numpy.logical_not[]
B. numpy.not(a)
C. numpy.logical_not(a)
D. not numpy.logical(a)

Solution

  1. Step 1: Recall the correct function for logical NOT in NumPy

    The function is numpy.logical_not(array) to invert boolean values element-wise.
  2. Step 2: Check syntax correctness

    numpy.logical_not(a) uses correct function and parentheses syntax; others are invalid or incorrect.
  3. Final Answer:

    numpy.logical_not(a) -> Option C
  4. Quick Check:

    NOT operation = numpy.logical_not(array) [OK]
Hint: Use logical_not with parentheses for NOT operation [OK]
Common Mistakes:
  • Using numpy.not which does not exist
  • Using square brackets instead of parentheses
  • Trying to negate with not keyword on arrays
3. What is the output of the following code?
import numpy as np
x = np.array([True, False, True])
y = np.array([False, False, True])
result = np.logical_or(x, y)
print(result)
medium
A. [False False False]
B. [False True True]
C. [True True True]
D. [True False True]

Solution

  1. Step 1: Understand logical OR operation element-wise

    logical_or returns True if either element in the pair is True.
  2. Step 2: Apply logical_or to each pair in arrays x and y

    Pairs: (True, False) -> True, (False, False) -> False, (True, True) -> True.
  3. Final Answer:

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

    logical_or([True,False,True],[False,False,True]) = [True,False,True] [OK]
Hint: OR is True if any element is True in pair [OK]
Common Mistakes:
  • Confusing logical_or with logical_and
  • Misreading boolean values in arrays
  • Assuming all False if one element is False
4. Identify the error in the following code snippet:
import numpy as np
arr = np.array([True, False, True])
result = arr and np.array([False, True, False])
print(result)
medium
A. np.array should be np.logical_and
B. Using 'and' operator directly on NumPy arrays causes an error
C. Missing parentheses around arrays
D. Arrays must be converted to lists before logical operations

Solution

  1. Step 1: Understand Python 'and' operator with arrays

    'and' is a Python keyword that does not work element-wise on arrays; it expects single boolean values.
  2. Step 2: Identify correct way to do element-wise logical AND

    Use numpy.logical_and(arr1, arr2) for element-wise AND on arrays.
  3. Final Answer:

    Using 'and' operator directly on NumPy arrays causes an error -> Option B
  4. Quick Check:

    Python 'and' fails on arrays; use logical_and [OK]
Hint: Use numpy.logical_and, not Python 'and' for arrays [OK]
Common Mistakes:
  • Using Python 'and' instead of numpy.logical_and
  • Trying to use 'and' without parentheses
  • Converting arrays to lists unnecessarily
5. Given two NumPy arrays:
a = np.array([1, 0, 3, 0, 5])
b = np.array([0, 2, 3, 4, 0])

Which code snippet correctly creates a boolean array that is True where a is non-zero AND b is zero?
hard
A. np.logical_and(a != 0, b == 0)
B. np.logical_or(a != 0, b == 0)
C. np.logical_not(np.logical_and(a == 0, b != 0))
D. np.logical_and(a == 0, b == 0)

Solution

  1. Step 1: Translate the condition into logical expressions

    We want True where a is not zero AND b is zero, so conditions are a != 0 and b == 0.
  2. Step 2: Use numpy.logical_and to combine conditions element-wise

    np.logical_and(a != 0, b == 0) returns True only where both conditions hold.
  3. Final Answer:

    np.logical_and(a != 0, b == 0) -> Option A
  4. Quick Check:

    AND of (a != 0) and (b == 0) = np.logical_and(a != 0, b == 0) [OK]
Hint: Combine conditions with logical_and for AND filtering [OK]
Common Mistakes:
  • Using logical_or instead of logical_and
  • Negating conditions incorrectly
  • Checking for zeros instead of non-zeros
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard