Bird
Raised Fist0
SciPydata~5 mins

Descriptive statistics (describe) in SciPy

Choose your learning style10 modes available
Introduction

Descriptive statistics help us quickly understand the main features of data. They summarize data with simple numbers like mean, variance, and range.

When you want to get a quick summary of a dataset before analysis.
When checking the spread and central tendency of exam scores in a class.
When comparing basic statistics of sales data across different months.
When you want to detect if data has outliers or unusual values.
When preparing data for visualization or further modeling.
Syntax
SciPy
from scipy.stats import describe

result = describe(data, axis=0, ddof=1, bias=False, nan_policy='propagate')

data is your input array or list of numbers.

The describe function returns several statistics like count, mean, variance, skewness, and kurtosis.

Examples
Basic example with a simple list of numbers.
SciPy
from scipy.stats import describe

result = describe([1, 2, 3, 4, 5])
Describes each column separately in a 2D array.
SciPy
import numpy as np
from scipy.stats import describe

data = np.array([[1, 2, 3], [4, 5, 6]])
result = describe(data, axis=0)
Calculate variance with denominator N instead of N-1 by setting ddof=0.
SciPy
from scipy.stats import describe

result = describe([1, 2, 3, 4, 5], ddof=0)
Sample Program

This program calculates and prints basic descriptive statistics for a list of temperatures.

SciPy
from scipy.stats import describe

# Sample data: daily temperatures in Celsius
temperatures = [22, 21, 23, 22, 24, 25, 23, 22, 21, 20]

# Get descriptive statistics
stats = describe(temperatures)

print(f"Count: {stats.nobs}")
print(f"Mean: {stats.mean:.2f}")
print(f"Variance: {stats.variance:.2f}")
print(f"Min: {stats.minmax[0]}")
print(f"Max: {stats.minmax[1]}")
print(f"Skewness: {stats.skewness:.2f}")
print(f"Kurtosis: {stats.kurtosis:.2f}")
OutputSuccess
Important Notes

The describe function ignores NaN values only if nan_policy is set accordingly.

Skewness tells if data is symmetric (0 means symmetric).

Kurtosis indicates if data has heavy or light tails compared to normal distribution.

Summary

Descriptive statistics give a quick summary of data using numbers.

Use scipy.stats.describe to get count, mean, variance, min, max, skewness, and kurtosis.

This helps understand data shape and spread before deeper analysis.

Practice

(1/5)
1. What does the scipy.stats.describe function provide when applied to a dataset?
easy
A. Summary statistics like count, mean, variance, min, max, skewness, and kurtosis
B. Only the mean and median of the dataset
C. A plot showing data distribution
D. A list of unique values in the dataset

Solution

  1. Step 1: Understand the purpose of scipy.stats.describe

    This function is designed to give a quick summary of key statistics about the data.
  2. Step 2: Identify the statistics returned

    It returns count, mean, variance, minimum, maximum, skewness, and kurtosis, which describe data shape and spread.
  3. Final Answer:

    Summary statistics like count, mean, variance, min, max, skewness, and kurtosis -> Option A
  4. Quick Check:

    Descriptive stats = count, mean, variance, min, max, skewness, kurtosis [OK]
Hint: Remember: describe summarizes data with key stats [OK]
Common Mistakes:
  • Thinking it returns only mean and median
  • Confusing it with plotting functions
  • Expecting a list of unique values
2. Which of the following is the correct way to import and use describe from scipy.stats?
easy
A. from scipy.stats import describe; result = describe(data)
B. import scipy.stats; result = describe(data)
C. from scipy import describe; result = describe(data)
D. import describe from scipy.stats; result = describe(data)

Solution

  1. Step 1: Check correct import syntax for a function

    Functions are imported using from module import function syntax in Python.
  2. Step 2: Verify usage of describe after import

    After importing, call describe(data) directly.
  3. Final Answer:

    from scipy.stats import describe; result = describe(data) -> Option A
  4. Quick Check:

    Correct import and call = from scipy.stats import describe; result = describe(data) [OK]
Hint: Use 'from scipy.stats import describe' to call directly [OK]
Common Mistakes:
  • Using wrong import syntax like 'import describe from ...'
  • Importing scipy.stats but not calling with module prefix
  • Importing from wrong module
3. Given the code below, what will be the output for the mean and min values?
import numpy as np
from scipy.stats import describe

data = np.array([2, 4, 6, 8, 10])
result = describe(data)
print(result.mean, result.minmax[0])
medium
A. 6.0 0
B. 5.0 2
C. 6.0 2
D. 5.0 0

Solution

  1. Step 1: Calculate the mean of the data array

    The data is [2, 4, 6, 8, 10]. Mean = (2+4+6+8+10)/5 = 30/5 = 6.0.
  2. Step 2: Identify the minimum value from minmax

    minmax returns (min, max). The minimum is 2.
  3. Final Answer:

    6.0 2 -> Option C
  4. Quick Check:

    Mean = 6.0, Min = 2 [OK]
Hint: Mean is average; min is smallest value [OK]
Common Mistakes:
  • Calculating mean incorrectly as 5.0
  • Confusing minmax tuple order
  • Assuming min is 0 without checking data
4. What is wrong with the following code snippet?
from scipy.stats import describe
data = [1, 2, 3, 4, 5]
result = describe(data, axis=1)
print(result)
medium
A. The print statement is missing parentheses
B. The data list should be converted to a numpy array first
C. The describe function requires a second argument for axis
D. Axis=1 is invalid for 1D data, causing an error

Solution

  1. Step 1: Understand the data shape and axis parameter

    The data is a 1D list. Axis=1 means operate along columns of 2D or higher arrays.
  2. Step 2: Identify the error caused by axis=1 on 1D data

    Using axis=1 on 1D data causes an AxisError because axis 1 does not exist.
  3. Final Answer:

    Axis=1 is invalid for 1D data, causing an error -> Option D
  4. Quick Check:

    Axis must exist in data shape [OK]
Hint: Check data dimensions before setting axis [OK]
Common Mistakes:
  • Assuming axis=1 works for 1D data
  • Thinking data must be numpy array for describe
  • Ignoring Python 3 print syntax
5. You have a dataset with some zero and negative values: data = [0, -1, 2, 3, 4]. Using scipy.stats.describe, which statistic helps you understand if the data distribution is skewed?
hard
A. Variance
B. Skewness
C. Count
D. Minimum

Solution

  1. Step 1: Recall what skewness measures

    Skewness shows if data is symmetric or leans left/right (skewed).
  2. Step 2: Identify which statistic indicates skewness

    Among the options, only skewness directly measures data asymmetry.
  3. Final Answer:

    Skewness -> Option B
  4. Quick Check:

    Skewness = data asymmetry [OK]
Hint: Skewness shows data leaning direction [OK]
Common Mistakes:
  • Confusing variance with skewness
  • Thinking count or minimum show skewness
  • Ignoring negative and zero values impact
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