Bird
Raised Fist0
NumPydata~10 mins

NumPy with SciPy - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to import the SciPy stats module.

NumPy
from scipy import [1]

print(stats.norm.cdf(0))
Drag options to blanks, or click blank then click option'
Aoptimize
Bstats
Cintegrate
Dlinalg
Attempts:
3 left
💡 Hint
Common Mistakes
Importing the wrong SciPy submodule like optimize or integrate.
Trying to use stats without importing it.
2fill in blank
medium

Complete the code to create a NumPy array of 5 random numbers from a normal distribution using SciPy.

NumPy
import numpy as np
from scipy import stats

random_nums = stats.norm.[1](size=5)
print(random_nums)
Drag options to blanks, or click blank then click option'
Arvs
Bppf
Ccdf
Dpdf
Attempts:
3 left
💡 Hint
Common Mistakes
Using cdf or pdf which compute probabilities, not samples.
Using ppf which is the percent point function (inverse cdf).
3fill in blank
hard

Fix the error in the code to calculate the mean of a NumPy array.

NumPy
import numpy as np

arr = np.array([1, 2, 3, 4, 5])
mean_value = arr.[1]()
print(mean_value)
Drag options to blanks, or click blank then click option'
Amean
Baverage
Cmedian
Dmode
Attempts:
3 left
💡 Hint
Common Mistakes
Using average() which is a NumPy function but not an array method.
Confusing mean with median or mode.
4fill in blank
hard

Fill both blanks to create a dictionary of word lengths for words longer than 3 characters.

NumPy
words = ['data', 'science', 'is', 'fun']
lengths = {word: [1] for word in words if len(word) [2] 3}
print(lengths)
Drag options to blanks, or click blank then click option'
Alen(word)
Bword
C>
D<=
Attempts:
3 left
💡 Hint
Common Mistakes
Using the word itself as the value instead of its length.
Using the wrong comparison operator like <= instead of >.
5fill in blank
hard

Fill all three blanks to create a dictionary of uppercase words and their lengths for words longer than 2 characters.

NumPy
words = ['apple', 'to', 'banana', 'go']
result = { [1]: [2] for w in words if len(w) [3] 2 }
print(result)
Drag options to blanks, or click blank then click option'
Aw.upper()
Blen(w)
C>
Dw
Attempts:
3 left
💡 Hint
Common Mistakes
Using the original word instead of uppercase for keys.
Using wrong comparison operator or value for filtering.

Practice

(1/5)
1. What is the main benefit of using SciPy together with NumPy?
easy
A. SciPy replaces NumPy for basic array operations.
B. SciPy provides extra math functions that NumPy does not have.
C. SciPy is used only for plotting graphs.
D. SciPy is a database for storing NumPy arrays.

Solution

  1. Step 1: Understand NumPy's role

    NumPy is mainly for fast array operations and basic math.
  2. Step 2: Understand SciPy's role

    SciPy adds many advanced math and scientific functions on top of NumPy.
  3. Final Answer:

    SciPy provides extra math functions that NumPy does not have. -> Option B
  4. Quick Check:

    Extra math tools = SciPy [OK]
Hint: SciPy adds advanced math tools beyond NumPy basics [OK]
Common Mistakes:
  • Thinking SciPy replaces NumPy
  • Confusing SciPy with plotting libraries
  • Believing SciPy stores data like a database
2. Which of the following is the correct way to import the SciPy stats module alongside NumPy?
easy
A. import numpy as np; import scipy.stats as stats
B. import numpy; import scipy.stats
C. from numpy import stats; import scipy
D. import numpy.stats; import scipy as sp

Solution

  1. Step 1: Check standard import conventions

    NumPy is usually imported as np, SciPy submodules like stats as stats or sp.stats.
  2. Step 2: Validate each option

    import numpy as np; import scipy.stats as stats uses correct aliases and imports the stats submodule properly.
  3. Final Answer:

    import numpy as np; import scipy.stats as stats -> Option A
  4. Quick Check:

    Standard imports = import numpy as np; import scipy.stats as stats [OK]
Hint: Use 'import numpy as np' and 'import scipy.stats as stats' [OK]
Common Mistakes:
  • Importing non-existent numpy.stats
  • Using wrong aliases or missing 'as'
  • Importing whole scipy without submodule
3. What is the output of this code?
import numpy as np
from scipy import stats
arr = np.array([1, 2, 2, 3, 4])
mode_result = stats.mode(arr)
print(mode_result.mode[0])
medium
A. 1
B. 4
C. 3
D. 2

Solution

  1. Step 1: Understand the array values

    The array is [1, 2, 2, 3, 4], where 2 appears twice, others once.
  2. Step 2: Understand stats.mode function

    stats.mode returns the most frequent value; here it is 2.
  3. Final Answer:

    2 -> Option D
  4. Quick Check:

    Most frequent value = 2 [OK]
Hint: Mode is the most frequent number in the array [OK]
Common Mistakes:
  • Confusing mode with mean or median
  • Not accessing mode_result.mode[0]
  • Assuming first element is mode
4. Find the error in this code snippet:
import numpy as np
from scipy import stats
arr = np.array([1, 2, 3, 4])
mode_result = stats.mode(arr)
print(mode_result[0])
medium
A. mode_result is an object; correct access is mode_result.mode, not mode_result[0].
B. stats.mode returns a tuple, so indexing with [0] is correct.
C. The array must be a list, not a NumPy array.
D. Missing import for numpy as np.

Solution

  1. Step 1: Check stats.mode return type

    stats.mode returns an object with attributes like mode and count, not a tuple.
  2. Step 2: Identify correct attribute access

    Access the mode value with mode_result.mode, not by indexing mode_result[0].
  3. Final Answer:

    mode_result is an object; correct access is mode_result.mode, not mode_result[0]. -> Option A
  4. Quick Check:

    Use .mode attribute, not [0] index [OK]
Hint: Use .mode attribute to get mode, not indexing [OK]
Common Mistakes:
  • Using indexing instead of attribute access
  • Confusing return type as tuple
  • Thinking array must be list
5. You have two NumPy arrays:
import numpy as np
from scipy import stats
arr1 = np.array([1, 2, 2, 3])
arr2 = np.array([2, 2, 3, 4])

How can you find the combined mode of all elements from both arrays using SciPy?
hard
A. Use stats.mode(arr1 + arr2)
B. Use stats.mode(arr1 * arr2)
C. Use stats.mode(np.concatenate((arr1, arr2)))
D. Use stats.mode(arr1) and stats.mode(arr2) separately and pick the higher

Solution

  1. Step 1: Combine both arrays

    Use np.concatenate to join arr1 and arr2 into one array.
  2. Step 2: Apply stats.mode on combined array

    Passing the combined array to stats.mode finds the overall mode.
  3. Final Answer:

    Use stats.mode(np.concatenate((arr1, arr2))) -> Option C
  4. Quick Check:

    Combine arrays first, then mode [OK]
Hint: Join arrays with concatenate before finding mode [OK]
Common Mistakes:
  • Adding or multiplying arrays instead of concatenating
  • Finding modes separately and comparing manually
  • Not combining arrays before mode
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