Easy Stats
py_simple.easy_stats
Beginner-friendly helpers for common statistics operations.
data_range(nums)
Returns the difference between the largest and smallest numbers.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nums
|
list[float]
|
List of numbers. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
The difference between max and min. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the list is empty. |
Example
from py_simple import data_range
result = data_range([4, 1, 8, 2]) # -> 7
nums = [4, 1, 8, 2]
result = max(nums) - min(nums)
median(nums)
Returns the middle value of a list of numbers.
With an even count, the mean of the two middle values is returned.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nums
|
list[float]
|
List of numbers. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
The median value. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the list is empty. |
Example
from py_simple import median
result = median([4, 1, 9, 2]) # -> 3.0
nums = sorted([4, 1, 9, 2])
mid = len(nums) // 2
result = nums[mid] if len(nums) % 2 else (nums[mid - 1] + nums[mid]) / 2
mode(nums)
Returns the number that appears most often in a list.
If several numbers tie, the one that appears first is returned.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nums
|
list[float]
|
List of numbers. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
The most frequent number. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the list is empty. |
Example
from py_simple import mode
result = mode([2, 1, 2, 3]) # -> 2
from collections import Counter
nums = [2, 1, 2, 3]
result = Counter(nums).most_common(1)[0][0]
percentile(nums, percent)
Returns the value below which the given percent of numbers fall.
Uses the nearest-rank method.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nums
|
list[float]
|
List of numbers. |
required |
percent
|
float
|
The percentile, from 0 to 100. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
The value at the given percentile. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the list is empty or percent is outside 0-100. |
Example
from py_simple import percentile
result = percentile([1, 2, 3, 4], 75) # -> 3
import math
nums, percent = [1, 2, 3, 4], 75
ordered = sorted(nums)
result = ordered[max(0, math.ceil(len(ordered) * percent / 100) - 1)]
standard_deviation(nums)
Returns how far numbers typically sit from the average.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nums
|
list[float]
|
List of numbers. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
The square root of the sample variance. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the list has fewer than two numbers. |
Example
from py_simple import standard_deviation
result = standard_deviation([1, 2, 3]) # -> 1.0
from statistics import stdev
nums = [1, 2, 3]
result = stdev(nums)
variance(nums)
Returns how spread out the numbers are, as sample variance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nums
|
list[float]
|
List of numbers. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
The sample variance, using n - 1 as the divisor. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the list has fewer than two numbers. |
Example
from py_simple import variance
result = variance([1, 2, 3]) # -> 1.0
nums = [1, 2, 3]
mean = sum(nums) / len(nums)
result = sum((num - mean) ** 2 for num in nums) / (len(nums) - 1)