Bird
Raised Fist0
Data Analysis Pythondata~20 mins

Histograms in Data Analysis Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Histogram Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Histogram Bin Counts with numpy
What is the output of the following code that creates a histogram bin count using numpy?
Data Analysis Python
import numpy as np

data = np.array([1, 2, 2, 3, 4, 4, 4, 5])
bins = [1, 3, 5]
counts, edges = np.histogram(data, bins=bins)
print(counts)
A[3 4]
B[3 5]
C[2 6]
D[4 4]
Attempts:
2 left
💡 Hint
Remember that numpy.histogram counts how many values fall into each bin interval, including the left edge but excluding the right edge except for the last bin.
❓ data_output
intermediate
2:00remaining
Pandas Histogram Value Counts
Given this pandas DataFrame, what is the output of the histogram value counts?
Data Analysis Python
import pandas as pd

df = pd.DataFrame({'scores': [10, 20, 20, 30, 40, 40, 40, 50]})
bins = [10, 30, 50]
hist = pd.cut(df['scores'], bins=bins).value_counts().sort_index()
print(hist)
A
[10-30)    3
30-50)     5
dtype: int64
B
[10-30)    2
30-50)     6
dtype: int64
C
[10-30)    4
30-50)     4
dtype: int64
D
[10-30)    3
30-50)     4
dtype: int64
Attempts:
2 left
💡 Hint
pd.cut bins are left-inclusive and right-exclusive by default.
❓ visualization
advanced
3:00remaining
Matplotlib Histogram Bin Width Effect
Which histogram plot shows the effect of changing bin width on the same data?
Data Analysis Python
import matplotlib.pyplot as plt
import numpy as np

data = np.random.normal(0, 1, 1000)

plt.figure(figsize=(10,4))
plt.subplot(1,2,1)
plt.hist(data, bins=10, color='blue')
plt.title('Bins=10')

plt.subplot(1,2,2)
plt.hist(data, bins=30, color='green')
plt.title('Bins=30')

plt.tight_layout()
plt.show()
ALeft plot is a scatter plot; right plot is a histogram.
BLeft plot has narrower bins with more bars; right plot has wider bins with fewer bars.
CBoth plots have the same number of bins and look identical.
DLeft plot has wider bins with fewer bars; right plot has narrower bins with more bars.
Attempts:
2 left
💡 Hint
More bins means narrower bars and more detail.
🔧 Debug
advanced
2:00remaining
Fix the Histogram Edge Inclusion Bug
What error does this code raise and why? import numpy as np data = [1, 2, 3, 4, 5] bins = [1, 3, 5] counts, edges = np.histogram(data, bins=bins) print(counts) print(edges) # Then trying to access counts[3]
Data Analysis Python
print(counts[3])
AIndexError: index 3 is out of bounds for axis 0 with size 2
BTypeError: 'list' object is not subscriptable
CValueError: bins must increase monotonically
DNo error, prints the count of the fourth bin
Attempts:
2 left
💡 Hint
Check how many bins are created by np.histogram with 3 edges.
🚀 Application
expert
3:00remaining
Choosing Optimal Histogram Bins for Skewed Data
You have a dataset with a strong right skew. Which binning strategy below will best reveal the data distribution in a histogram?
AUse a single bin to summarize all data.
BUse equal-width bins spanning the entire data range.
CUse bins with widths increasing exponentially to capture skewness.
DUse bins with random widths unrelated to data distribution.
Attempts:
2 left
💡 Hint
Think about how bin widths can adapt to data skew to show detail where data is dense.

Practice

(1/5)
1. What does a histogram primarily show when analyzing data?
easy
A. The average value of the dataset
B. The exact values of each data point
C. The relationship between two variables
D. The frequency distribution of data values grouped into bins

Solution

  1. Step 1: Understand histogram purpose

    A histogram groups data into bins and counts how many data points fall into each bin.
  2. Step 2: Identify what histogram shows

    This grouping shows the frequency distribution, not exact values or relationships.
  3. Final Answer:

    The frequency distribution of data values grouped into bins -> Option D
  4. Quick Check:

    Histogram = frequency distribution [OK]
Hint: Histograms show counts per bin, not individual values [OK]
Common Mistakes:
  • Confusing histogram with scatter plot
  • Thinking histogram shows exact data points
  • Assuming histogram shows averages
2. Which of the following is the correct way to create a histogram using matplotlib in Python?
easy
A. plt.plot(data)
B. plt.hist(data)
C. plt.bar(data)
D. plt.scatter(data)

Solution

  1. Step 1: Recall matplotlib histogram function

    Matplotlib uses plt.hist() to create histograms from data arrays.
  2. Step 2: Differentiate from other plot types

    plt.plot() is for line plots, plt.bar() for bar charts, plt.scatter() for scatter plots.
  3. Final Answer:

    plt.hist(data) -> Option B
  4. Quick Check:

    Histogram function = plt.hist() [OK]
Hint: Use plt.hist() to plot histograms in matplotlib [OK]
Common Mistakes:
  • Using plt.plot() instead of plt.hist()
  • Confusing bar chart with histogram
  • Trying plt.scatter() for histograms
3. What will be the output of this code snippet?
import matplotlib.pyplot as plt
import numpy as np

data = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
plt.hist(data, bins=4)
plt.show()
medium
A. A histogram with 4 bars showing counts: 1, 2, 3, 4
B. A histogram with 4 bars showing counts: 1, 2, 3, 4 but bars are unevenly spaced
C. A histogram with 4 bars showing counts: 1, 2, 3, 4 but bars represent ranges, not exact values
D. An error because bins must be equal to the number of unique values

Solution

  1. Step 1: Understand bins in histogram

    Bins divide the data range into intervals. Here, bins=4 divides data from 1 to 4 into 4 intervals.
  2. Step 2: Analyze counts per bin

    Counts per bin correspond to how many data points fall into each interval, not just counts of exact values.
  3. Final Answer:

    A histogram with 4 bars showing counts: 1, 2, 3, 4 but bars represent ranges, not exact values -> Option C
  4. Quick Check:

    Bins = ranges, counts per range [OK]
Hint: Bins group ranges, not just unique values [OK]
Common Mistakes:
  • Assuming bins equal unique values
  • Thinking bars show exact counts per value
  • Expecting error due to bins count
4. Identify the error in this code that tries to plot a histogram:
import matplotlib.pyplot as plt

values = [5, 7, 8, 5, 6]
plt.hist(values, bins='five')
plt.show()
medium
A. bins parameter should be an integer, not a string
B. plt.hist() does not accept lists as data
C. plt.show() is missing
D. values list must be converted to numpy array first

Solution

  1. Step 1: Check bins parameter type

    bins must be an integer or sequence, not a string like 'five'.
  2. Step 2: Verify other parts

    plt.hist accepts lists, plt.show() is present, numpy array conversion is optional.
  3. Final Answer:

    bins parameter should be an integer, not a string -> Option A
  4. Quick Check:

    bins must be int or sequence [OK]
Hint: bins must be int or list, not string [OK]
Common Mistakes:
  • Passing bins as string causes error
  • Thinking plt.hist needs numpy array
  • Forgetting plt.show()
5. You have a dataset with ages: [22, 25, 29, 35, 40, 42, 45, 50, 55, 60]. You want to create a histogram with bins representing decades (20-29, 30-39, 40-49, 50-59, 60-69). Which bins parameter should you use in plt.hist() to get this grouping?
hard
A. [20, 30, 40, 50, 60, 70]
B. [20, 29, 39, 49, 59, 69]
C. [20, 25, 30, 35, 40, 45, 50, 55, 60, 65]
D. [21, 31, 41, 51, 61, 71]

Solution

  1. Step 1: Define bin edges for decades

    Bins edges must cover ranges: 20-29, 30-39, etc. Using edges [20, 30, 40, 50, 60, 70] creates intervals [20-30), [30-40), etc.
  2. Step 2: Confirm bins cover all ages

    These edges include all ages from 22 to 60 correctly in decade groups.
  3. Final Answer:

    [20, 30, 40, 50, 60, 70] -> Option A
  4. Quick Check:

    Bins edges = decade boundaries [OK]
Hint: Bins edges define intervals; use decade boundaries [OK]
Common Mistakes:
  • Using bin edges that exclude upper bounds
  • Using single values instead of edges
  • Misaligning bins with decade ranges
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