Loading W Code...
🇮🇳 Indian Context
IT salary analysis, college placement data, and Delhi NCR housing statistics!
Foundation
import numpy as np
from scipy import stats
print("=" * 55)
print("DESCRIPTIVE STATISTICS")
print("=" * 55)
# Indian salary data (in lakhs per annum)
salaries = np.array([3.5, 4.2, 5.0, 5.5, 6.0, 6.5, 7.0, 8.0, 12.0, 45.0])
print(f"\n📊 Indian IT Salaries (₹ Lakhs p.a.): {salaries}")
# Central Tendency
print(f"\n--- Central Tendency ---")
print(f" Mean: ₹{np.mean(salaries):.1f} Lakhs")
print(f" Median: ₹{np.median(salaries):.1f} Lakhs")
print(f" Mode: N/A (all unique)")
print(f"\n 💡 Mean > Median → Right-skewed (CEO salary pulls mean up!)")
# Spread
print(f"\n--- Spread ---")
print(f" Range: {np.ptp(salaries):.1f}")
print(f" Variance: {np.var(salaries, ddof=1):.2f} (sample)")
print(f" Std Dev: {np.std(salaries, ddof=1):.2f}")
Q1, Q3 = np.percentile(salaries, [25, 75])
IQR = Q3 - Q1
print(f" Q1={Q1:.2f}, Q3={Q3:.2f}, IQR={IQR:.2f}")
# Outlier Detection (IQR Method)
lower_fence = Q1 - 1.5 * IQR
upper_fence = Q3 + 1.5 * IQR
outliers = salaries[(salaries < lower_fence) | (salaries > upper_fence)]
print(f"\n--- Outlier Detection ---")
print(f" Lower fence: {lower_fence:.2f}")
print(f" Upper fence: {upper_fence:.2f}")
print(f" Outliers: {outliers} ← CEO salary!")
# Skewness & Kurtosis
print(f"\n--- Shape ---")
print(f" Skewness: {stats.skew(salaries):.3f} → Right-skewed")
print(f" Kurtosis: {stats.kurtosis(salaries):.3f} → Leptokurtic (heavy tail)")
# Feature Scaling
print(f"\n--- ML: Feature Scaling ---")
z_scores = (salaries - np.mean(salaries)) / np.std(salaries)
min_max = (salaries - salaries.min()) / (salaries.max() - salaries.min())
print(f" Z-score scaled: {np.round(z_scores, 2)}")
print(f" Min-Max scaled: {np.round(min_max, 2)}")