Bird
Raised Fist0
NumPydata~20 mins

NumPy with Matplotlib - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
NumPy with Matplotlib Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of NumPy array plot with Matplotlib
What will be the output plot when running the following code?
NumPy
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title('Sine Wave')
plt.xlabel('x values')
plt.ylabel('sin(x)')
plt.show()
AA bar chart with bars representing sine values at discrete points
BA scatter plot of points randomly distributed between 0 and 10 on x-axis
CAn empty plot with no lines or points
DA line plot showing a sine wave oscillating between -1 and 1 over x from 0 to 10
Attempts:
2 left
💡 Hint
Think about what plt.plot does with x and y arrays.
❓ data_output
intermediate
1:30remaining
Shape of NumPy array after meshgrid for plotting
Given the code below, what is the shape of X and Y arrays used for contour plotting?
NumPy
import numpy as np
x = np.linspace(-1, 1, 5)
y = np.linspace(-1, 1, 3)
X, Y = np.meshgrid(x, y)
print(X.shape, Y.shape)
A(3, 5) (3, 5)
B(5, 5) (3, 3)
C(5, 3) (5, 3)
D(3, 3) (5, 5)
Attempts:
2 left
💡 Hint
meshgrid creates coordinate matrices for vectorized evaluations.
❓ visualization
advanced
2:30remaining
Identify the correct heatmap from NumPy data
Which option shows the correct heatmap visualization for the following data array?
NumPy
import numpy as np
import matplotlib.pyplot as plt

data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
plt.imshow(data, cmap='viridis')
plt.colorbar()
plt.show()
AA 3x3 grid with uniform color and no gradient
BA 3x3 grid with colors ranging from dark purple (low) to yellow (high) increasing from top-left to bottom-right
CA 3x3 grid with colors randomly assigned ignoring data values
DA line plot showing values 1 to 9 on y-axis
Attempts:
2 left
💡 Hint
imshow colors cells based on their numeric values using the colormap.
🔧 Debug
advanced
1:30remaining
Error in plotting NumPy array with Matplotlib
What error will this code produce and why?
NumPy
import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3])
y = np.array([4, 5])
plt.plot(x, y)
plt.show()
ANo error, plots a line connecting points
BTypeError: unsupported operand type(s) for +: 'int' and 'str'
CValueError: x and y must have same first dimension
DIndexError: index out of bounds
Attempts:
2 left
💡 Hint
Check if x and y arrays have the same length.
🚀 Application
expert
3:00remaining
Calculate and plot the 2D Gaussian distribution
Which code snippet correctly calculates a 2D Gaussian distribution and plots it as a contour plot?
A
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = (1/(2*np.pi)) * np.exp(-0.5*(X**2 + Y**2))
plt.contour(X, Y, Z)
plt.title('2D Gaussian')
plt.show()
B
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = np.exp(-(X + Y)**2)
plt.contourf(X, Y, Z)
plt.title('2D Gaussian')
plt.show()
C
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = (1/np.sqrt(2*np.pi)) * np.exp(-0.5*(X**2 + Y**2))
plt.contour(X, Y, Z)
plt.title('2D Gaussian')
plt.show()
D
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = (1/(2*np.pi)) * np.exp(-0.5*(X + Y))
plt.contour(X, Y, Z)
plt.title('2D Gaussian')
plt.show()
Attempts:
2 left
💡 Hint
Recall the formula for 2D Gaussian: (1/(2π)) * exp(-0.5*(x² + y²))

Practice

(1/5)
1. What is the main purpose of using NumPy together with Matplotlib in data science?
easy
A. To create numerical data and then visualize it with graphs
B. To write text documents and print them
C. To build websites and style them
D. To store large files on the computer

Solution

  1. Step 1: Understand NumPy's role

    NumPy helps create and manage numerical data easily.
  2. Step 2: Understand Matplotlib's role

    Matplotlib is used to draw graphs to visualize data.
  3. Final Answer:

    To create numerical data and then visualize it with graphs -> Option A
  4. Quick Check:

    NumPy + Matplotlib = Data + Graphs [OK]
Hint: NumPy handles numbers, Matplotlib draws pictures [OK]
Common Mistakes:
  • Confusing Matplotlib with text editing tools
  • Thinking NumPy is for website design
  • Mixing file storage with data visualization
2. Which of the following code snippets correctly imports NumPy and Matplotlib for use?
easy
A. import np import matplotlib.pyplot
B. import numpy import matplotlib as plt
C. from numpy import matplotlib import pyplot as plt
D. import numpy as np import matplotlib.pyplot as plt

Solution

  1. Step 1: Check NumPy import syntax

    Correct import is 'import numpy as np' to use 'np' as shortcut.
  2. Step 2: Check Matplotlib import syntax

    Correct import is 'import matplotlib.pyplot as plt' to use 'plt' for plotting.
  3. Final Answer:

    import numpy as np\nimport matplotlib.pyplot as plt -> Option D
  4. Quick Check:

    Standard imports = import numpy as np import matplotlib.pyplot as plt [OK]
Hint: Use 'as np' and 'as plt' for easy code [OK]
Common Mistakes:
  • Using wrong aliases like 'import matplotlib as plt'
  • Forgetting 'pyplot' in Matplotlib import
  • Trying to import non-existing modules
3. What will be the output plot type when running this code?
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
medium
A. A line graph showing a sine wave
B. A bar chart with values from 0 to 10
C. A scatter plot with random points
D. No plot will show due to error

Solution

  1. Step 1: Understand data creation

    np.linspace creates 100 points from 0 to 10; y is sine of x values.
  2. Step 2: Understand plotting command

    plt.plot draws a line graph connecting (x, y) points; plt.show displays it.
  3. Final Answer:

    A line graph showing a sine wave -> Option A
  4. Quick Check:

    plot(x, sin(x)) = sine wave line [OK]
Hint: plt.plot with np.sin creates smooth wave line [OK]
Common Mistakes:
  • Confusing plt.plot with bar or scatter plots
  • Expecting random points instead of line
  • Missing plt.show() to display plot
4. Identify the error in this code snippet that tries to plot a cosine wave:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 50)
y = np.cos(x)
plt.plot(x, y)
plt.show
medium
A. np.cos is not a valid NumPy function
B. np.linspace should use 100 points instead of 50
C. Missing parentheses after plt.show to display the plot
D. x and y arrays have different lengths

Solution

  1. Step 1: Check plt.show usage

    plt.show is a function and must be called with parentheses: plt.show()
  2. Step 2: Verify other parts

    np.linspace and np.cos are correct; x and y lengths match.
  3. Final Answer:

    Missing parentheses after plt.show to display the plot -> Option C
  4. Quick Check:

    plt.show() needed to display plot [OK]
Hint: Always call plt.show() with parentheses [OK]
Common Mistakes:
  • Forgetting parentheses on plt.show
  • Thinking np.cos is invalid
  • Assuming array length mismatch without checking
5. You want to plot two functions, sine and cosine, on the same graph using NumPy and Matplotlib. Which code correctly does this?
hard
A. import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) plt.plot(np.sin(x)) plt.plot(np.cos(x)) plt.show()
B. import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.legend(['sin', 'cos']) plt.show()
C. import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) plt.plot(x, np.sin(x), np.cos(x)) plt.show()
D. import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) plt.scatter(x, np.sin(x)) plt.scatter(x, np.cos(x)) plt.show()

Solution

  1. Step 1: Check plotting both functions

    import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.legend(['sin', 'cos']) plt.show() plots sine and cosine separately with x values, correct usage.
  2. Step 2: Check legend and show

    import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.legend(['sin', 'cos']) plt.show() adds legend for clarity and calls plt.show() properly.
  3. Final Answer:

    Code that plots sine and cosine with legend and shows plot -> Option B
  4. Quick Check:

    Separate plt.plot calls + legend + plt.show() = import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.legend(['sin', 'cos']) plt.show() [OK]
Hint: Plot each function with x, add legend, call plt.show() [OK]
Common Mistakes:
  • Plotting without x values causing wrong x-axis
  • Missing legend to identify lines
  • Using scatter instead of line plot for smooth curves
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