Bird
Raised Fist0
SciPydata~20 mins

Mann-Whitney U test in SciPy - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Mann-Whitney U Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of Mann-Whitney U test on two small samples
What is the output of the Mann-Whitney U test for the following two samples using scipy.stats.mannwhitneyu with default parameters?
SciPy
from scipy.stats import mannwhitneyu
sample1 = [1, 3, 5]
sample2 = [2, 4, 6]
result = mannwhitneyu(sample1, sample2)
print((result.statistic, round(result.pvalue, 4)))
A(4.0, 0.5)
B(3.0, 1.0)
C(4.0, 1.0)
D(3.0, 0.5)
Attempts:
2 left
💡 Hint
Remember that the Mann-Whitney U statistic counts how many times values in one sample exceed values in the other.
❓ data_output
intermediate
1:00remaining
Number of items in the output of mannwhitneyu
How many values are returned by scipy.stats.mannwhitneyu when called on two samples?
SciPy
from scipy.stats import mannwhitneyu
sample1 = [10, 20, 30]
sample2 = [15, 25, 35]
result = mannwhitneyu(sample1, sample2)
print(len(result))
A2
B4
C3
D1
Attempts:
2 left
💡 Hint
Check the type of the result and what attributes it has.
🔧 Debug
advanced
1:30remaining
Identify the error in this Mann-Whitney U test code
What error does the following code raise when run?
SciPy
from scipy.stats import mannwhitneyu
sample1 = [1, 2, 3]
sample2 = [4, 5]
result = mannwhitneyu(sample1, sample2, alternative='greater')
print(result.statistic, result.pvalue)
AValueError: alternative must be 'two-sided', 'less' or 'greater'
BNo error, prints the statistic and p-value
CTypeError: mannwhitneyu() got an unexpected keyword argument 'alternative'
DIndexError: list index out of range
Attempts:
2 left
💡 Hint
Check the scipy.stats.mannwhitneyu documentation for valid parameters.
🧠 Conceptual
advanced
1:30remaining
Interpretation of Mann-Whitney U test p-value
If the Mann-Whitney U test returns a p-value of 0.03 for two independent samples, what does this mean?
AThe samples have exactly the same median values.
BThere is no evidence to reject the null hypothesis that the two samples come from the same distribution.
CThere is strong evidence that the two samples come from populations with different distributions.
DThe test is invalid because p-value must be greater than 0.05.
Attempts:
2 left
💡 Hint
Recall that a p-value below 0.05 usually means rejecting the null hypothesis.
🚀 Application
expert
2:00remaining
Choosing the correct Mann-Whitney U test alternative hypothesis
You want to test if sample A tends to have larger values than sample B. Which 'alternative' parameter should you use in scipy.stats.mannwhitneyu?
A'greater'
B'less'
C'two-sided'
D'equal'
Attempts:
2 left
💡 Hint
Think about the direction of the hypothesis you want to test.

Practice

(1/5)
1. What is the main purpose of the Mann-Whitney U test in data analysis?
easy
A. To test if a single sample mean equals a known value
B. To compare two independent groups without assuming normal distribution
C. To measure the correlation between two variables
D. To analyze the variance among multiple groups

Solution

  1. Step 1: Understand the test purpose

    The Mann-Whitney U test is a non-parametric test used to compare two independent groups.
  2. Step 2: Identify the key feature

    It does not assume the data follows a normal distribution, unlike t-tests.
  3. Final Answer:

    To compare two independent groups without assuming normal distribution -> Option B
  4. Quick Check:

    Non-parametric comparison = C [OK]
Hint: Remember: Mann-Whitney compares two groups without normality [OK]
Common Mistakes:
  • Confusing it with correlation tests
  • Assuming it compares means only
  • Using it for more than two groups
2. Which of the following is the correct way to import the Mann-Whitney U test function from scipy?
easy
A. import scipy.mannwhitneyu as mw
B. import mannwhitneyu from scipy.stats
C. from scipy import mann_whitney_u_test
D. from scipy.stats import mannwhitneyu

Solution

  1. Step 1: Recall scipy.stats module functions

    The Mann-Whitney U test function is named mannwhitneyu and is inside scipy.stats.
  2. Step 2: Check correct import syntax

    The correct Python import syntax is from scipy.stats import mannwhitneyu.
  3. Final Answer:

    from scipy.stats import mannwhitneyu -> Option D
  4. Quick Check:

    Correct import syntax = B [OK]
Hint: Use 'from scipy.stats import mannwhitneyu' to import [OK]
Common Mistakes:
  • Using wrong module or function name
  • Incorrect import syntax
  • Trying to import with 'import ... as' incorrectly
3. What will be the output of the following code snippet?
from scipy.stats import mannwhitneyu
x = [1, 3, 5]
y = [2, 4, 6]
stat, p = mannwhitneyu(x, y)
print(round(stat, 2), round(p, 3))
medium
A. 3.0 0.5
B. 4.5 0.25
C. 6.0 0.05
D. 0.0 1.0

Solution

  1. Step 1: Understand the data and test

    Lists x and y have values [1,3,5] and [2,4,6]. Mann-Whitney U test compares ranks between these two groups.
  2. Step 2: Calculate Mann-Whitney U statistic and p-value

    Using scipy, the U statistic is 3.0 and p-value is 0.5 (two-sided test by default).
  3. Final Answer:

    3.0 0.5 -> Option A
  4. Quick Check:

    U=3.0, p=0.5 from scipy output [OK]
Hint: Run code to get exact U and p values quickly [OK]
Common Mistakes:
  • Mixing up U statistic with p-value
  • Rounding incorrectly
  • Assuming p-value is always small
4. Identify the error in this Mann-Whitney U test code and select the fix:
from scipy.stats import mannwhitneyu
x = [1, 2, 3]
y = [4, 5, 6]
stat, p = mannwhitneyu(x, y, alternative='greater')
print(stat, p)
medium
A. Replace mannwhitneyu with mann_whitney_u
B. Change 'alternative' to 'two-sided'
C. No error; code runs correctly
D. Use 'alternative="greater"' with capital G

Solution

  1. Step 1: Check function parameters

    The mannwhitneyu function accepts an alternative parameter with values 'two-sided', 'less', or 'greater'.
  2. Step 2: Verify code correctness

    Using alternative='greater' is valid and the function call is correct.
  3. Final Answer:

    No error; code runs correctly -> Option C
  4. Quick Check:

    Correct parameter usage = D [OK]
Hint: Check scipy docs for valid 'alternative' values [OK]
Common Mistakes:
  • Using wrong alternative string case
  • Trying to use non-existent function names
  • Assuming default alternative is 'greater'
5. You have two small samples with skewed data: a = [2, 3, 5, 7] and b = [1, 4, 6, 8]. You want to test if sample a tends to have higher values than b. Which scipy Mann-Whitney U test call is correct?
hard
A. mannwhitneyu(a, b, alternative='greater')
B. mannwhitneyu(a, b, alternative='less')
C. mannwhitneyu(a, b, alternative='two-sided')
D. mannwhitneyu(b, a, alternative='greater')

Solution

  1. Step 1: Define the hypothesis direction

    We want to test if a tends to have higher values than b, so the alternative hypothesis is 'greater'.
  2. Step 2: Choose correct function call

    The call should be mannwhitneyu(a, b, alternative='greater') to test if a is stochastically greater than b.
  3. Final Answer:

    mannwhitneyu(a, b, alternative='greater') -> Option A
  4. Quick Check:

    Test if a > b = A [OK]
Hint: Use 'alternative="greater"' when testing if first sample is larger [OK]
Common Mistakes:
  • Swapping sample order and alternative incorrectly
  • Using 'less' when testing for greater
  • Choosing 'two-sided' when direction matters
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