Bird
Raised Fist0
NumPydata~5 mins

Scalar operations on arrays in NumPy - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Scalar operations on arrays
O(n)
Understanding Time Complexity

We want to understand how the time to do scalar operations on arrays changes as the array gets bigger.

How does the number of calculations grow when we add or multiply a number to every element?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

import numpy as np

arr = np.arange(1000)
result = arr * 5
result2 = arr + 10

This code creates an array and then multiplies and adds a scalar to every element.

Identify Repeating Operations
  • Primary operation: Multiplying and adding a scalar to each element in the array.
  • How many times: Once for each element in the array, so as many times as the array length.
How Execution Grows With Input

When the array size grows, the number of operations grows the same way.

Input Size (n)Approx. Operations
10About 10 multiplications and 10 additions
100About 100 multiplications and 100 additions
1000About 1000 multiplications and 1000 additions

Pattern observation: The work grows directly with the number of elements. Double the elements, double the work.

Final Time Complexity

Time Complexity: O(n)

This means the time to do scalar operations grows in a straight line with the array size.

Common Mistake

[X] Wrong: "Scalar operations on arrays are constant time because it's just one operation."

[OK] Correct: Even though it looks like one operation, it actually applies to every element, so the total work grows with the array size.

Interview Connect

Understanding how array operations scale helps you explain performance in data tasks and shows you can reason about efficiency clearly.

Self-Check

"What if we used a loop in Python to multiply each element instead of numpy's vectorized operation? How would the time complexity change?"

Practice

(1/5)
1. What happens when you add a scalar value to a NumPy array?
arr = np.array([1, 2, 3])
result = arr + 5
easy
A. 5 is added only to the first element
B. The array becomes a scalar value 5
C. 5 is added to each element of the array
D. An error occurs because you cannot add a scalar to an array

Solution

  1. Step 1: Understand scalar addition on arrays

    Adding a scalar to a NumPy array adds that scalar to every element individually.
  2. Step 2: Apply addition to each element

    Each element in [1, 2, 3] gets 5 added, resulting in [6, 7, 8].
  3. Final Answer:

    5 is added to each element of the array -> Option C
  4. Quick Check:

    Scalar + array = element-wise addition [OK]
Hint: Scalar operations apply to every element individually [OK]
Common Mistakes:
  • Thinking scalar adds only to first element
  • Expecting an error when adding scalar
  • Confusing scalar with array addition
2. Which of the following is the correct syntax to multiply every element of a NumPy array arr by 3?
easy
A. arr * 3
B. arr * [3]
C. arr * arr[3]
D. arr * (3,)

Solution

  1. Step 1: Identify scalar multiplication syntax

    Multiplying an array by a scalar uses the * operator with a number, like arr * 3.
  2. Step 2: Check other options

    arr * [3] tries to multiply by a list, arr * arr[3] accesses an element (may cause error if index out of range), arr * (3,) is a tuple, not scalar.
  3. Final Answer:

    arr * 3 -> Option A
  4. Quick Check:

    Scalar multiplication uses * scalar [OK]
Hint: Use * with a number, not list or tuple [OK]
Common Mistakes:
  • Using list or tuple instead of scalar
  • Accessing array element incorrectly
  • Confusing scalar with array
3. What is the output of the following code?
import numpy as np
arr = np.array([2, 4, 6])
result = arr - 1
print(result)
medium
A. [3 5 7]
B. [1 3 5]
C. [2 4 6]
D. Error: unsupported operand

Solution

  1. Step 1: Understand scalar subtraction on array

    Subtracting 1 from each element in [2, 4, 6] results in [1, 3, 5].
  2. Step 2: Confirm output matches expected array

    The print statement outputs the array as [1 3 5] without commas.
  3. Final Answer:

    [1 3 5] -> Option B
  4. Quick Check:

    Array - scalar subtracts from each element [OK]
Hint: Subtract scalar from each element for result [OK]
Common Mistakes:
  • Expecting commas in printed array
  • Adding instead of subtracting
  • Thinking operation causes error
4. The following code throws an error. What is the cause?
import numpy as np
arr = np.array([1, 2, 3])
result = arr + '5'
print(result)
medium
A. Cannot add string scalar to numeric array
B. Array is not defined
C. Missing import statement
D. Syntax error in addition

Solution

  1. Step 1: Identify data types involved in addition

    arr is numeric array, '5' is a string scalar. NumPy cannot add string to numbers.
  2. Step 2: Understand error cause

    Adding string to numeric array causes TypeError because types mismatch.
  3. Final Answer:

    Cannot add string scalar to numeric array -> Option A
  4. Quick Check:

    Scalar type must match array type [OK]
Hint: Scalar must be number, not string, for numeric arrays [OK]
Common Mistakes:
  • Thinking import is missing
  • Confusing syntax error with type error
  • Assuming array is undefined
5. You have a NumPy array arr = np.array([10, 20, 30, 40]). You want to reduce each element by 10% using scalar operations. Which code correctly does this?
hard
A. arr + 0.9
B. arr - 0.1
C. arr / 10
D. arr * 0.9

Solution

  1. Step 1: Understand reducing by 10%

    Reducing by 10% means multiplying by 90% or 0.9.
  2. Step 2: Apply scalar multiplication

    Multiplying arr by 0.9 scales each element down by 10%.
  3. Step 3: Check other options

    Subtracting 0.1 reduces by fixed amount, dividing by 10 reduces by 90%, adding 0.9 increases values.
  4. Final Answer:

    arr * 0.9 -> Option D
  5. Quick Check:

    Multiply by 0.9 to reduce by 10% [OK]
Hint: Multiply by 0.9 to reduce by 10% [OK]
Common Mistakes:
  • Subtracting 0.1 instead of 10%
  • Dividing instead of multiplying
  • Adding instead of reducing
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