This code counts how many ages fall into 4 groups and shows the edges of these groups.
NumPy
import numpy as np
# Sample data: ages of 10 people
ages = np.array([22, 25, 27, 30, 22, 24, 29, 31, 35, 40])
# Compute histogram with 4 bins
counts, bin_edges = np.histogram(ages, bins=4)
print('Counts:', counts)
print('Bin edges:', bin_edges)
OutputSuccess
Important Notes
The bin_edges array shows the boundaries of each group.
The number of counts is always one less than the number of bin edges.
If you want to plot the histogram, you can use matplotlib.pyplot.hist() which does this internally.
Summary
Histograms count how many data points fall into different ranges.
Use np.histogram() to get counts and bin edges separately.
You can control the number or exact edges of bins to see data distribution clearly.
Practice
(1/5)
1. What does the np.histogram() function in NumPy do?
easy
A. It creates a line plot of the data points.
B. It sorts the data points in ascending order.
C. It counts how many data points fall into specified bins and returns counts and bin edges.
D. It calculates the mean and median of the data points.
Solution
Step 1: Understand the purpose of np.histogram()
The function divides data into bins and counts how many points fall into each bin.
Step 2: Identify the output of np.histogram()
It returns two arrays: one with counts per bin and one with the bin edges.
Final Answer:
It counts how many data points fall into specified bins and returns counts and bin edges. -> Option C
Quick Check:
np.histogram() = counts and edges [OK]
Hint: np.histogram() returns counts and bin edges separately [OK]
Common Mistakes:
Thinking np.histogram() sorts data
Confusing histogram with mean calculation
Expecting a plot from np.histogram()
2. Which of the following is the correct way to call np.histogram() to create 4 bins for data array data?
easy
A. np.histogram(data, bins=4)
B. np.histogram(4, data)
C. np.histogram(bins=data, 4)
D. np.histogram(data, bins=[4])
Solution
Step 1: Check the correct parameter usage for bins
The bins parameter can be passed as a keyword argument like bins=4.
Step 2: Identify the correct syntax
np.histogram(data, bins=4) is the standard and clear way to specify 4 bins.
Final Answer:
np.histogram(data, bins=4) -> Option A
Quick Check:
Use bins=4 to specify number of bins [OK]
Hint: Use bins=number to set bin count in np.histogram() [OK]
Common Mistakes:
Passing bins as a list with one number
Swapping argument order incorrectly
Using positional argument without data first
3. What is the output of this code?
import numpy as np
data = np.array([1, 2, 2, 3, 4, 5])
counts, bins = np.histogram(data, bins=[1, 3, 5])
print(counts)
medium
A. [2 4]
B. [3 3]
C. [1 5]
D. [3 2]
Solution
Step 1: Understand bins and data distribution
Bins are [1, 3) and [3, 5). Count how many data points fall into each bin.
Step 2: Count data points in each bin
Bin [1,3) includes 1, 2, 2 -> 3 points; Bin [3,5) includes 3, 4 -> 2 points. Note that 5 equals the rightmost bin edge and is included in the last bin.
Final Answer:
[3 3] -> Option B
Quick Check:
Counts per bin = [3, 3] [OK]
Hint: Count points in each bin range carefully [OK]
Common Mistakes:
Including right edge in left bin
Miscounting repeated values
Confusing bin edges with counts
4. The following code throws an error. What is the problem?
import numpy as np
data = [1, 2, 3, 4]
counts, bins = np.histogram(data, bins='five')
medium
A. The counts and bins cannot be unpacked together.
B. The data must be a NumPy array, not a list.
C. np.histogram() requires at least 5 data points.
D. The bins parameter must be an integer or sequence, not a string.
Solution
Step 1: Check the bins parameter type
bins='five' is a string, but bins must be an int or a sequence of numbers.
Data can be list or array, and unpacking counts and bins is valid.
Final Answer:
The bins parameter must be an integer or sequence, not a string. -> Option D
Quick Check:
bins must be int or sequence, not string [OK]
Hint: Bins must be int or list/array, not text [OK]
Common Mistakes:
Thinking data must be np.array
Assuming unpacking counts and bins is invalid
Believing minimum data length is required
5. You have data points [0, 1, 2, 3, 4, 5, 6]. You want to create a histogram with bins of width 2 starting from 0 up to 6 (inclusive). Which bins parameter should you pass to np.histogram() to get correct bin counts?
hard
A. [0, 2, 4, 6, 8]
B. [0, 2, 4, 6]
C. 3
D. [0, 1, 2, 3, 4, 5, 6]
Solution
Step 1: Determine bin edges for width 2 from 0 to 6 inclusive
Bins should cover ranges: 0-2, 2-4, 4-6, and include 6, so edges are [0, 2, 4, 6, 8].
Step 2: Understand np.histogram bin edge behavior
Rightmost edge is inclusive for the last bin, so to include 6, bin edges must go beyond 6.
Final Answer:
[0, 2, 4, 6, 8] -> Option A
Quick Check:
Bin edges must cover all data points [OK]
Hint: Add one extra bin edge beyond max data to include last point [OK]
Common Mistakes:
Using bins that exclude the max value
Using number of bins instead of edges
Using bin edges with wrong intervals
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.