NumPy-統計函數詳解

NumPy-統計函數詳解

    • 一、基礎統計函數:均值、方差、標準差
      • 1. 全局統計:忽略維度的整體計算
      • 2. 按軸統計:指定維度方向的計算
    • 二、位置統計:中位數、分位數、百分位數
      • 1. 中位數計算
      • 2. 分位數與百分位數
    • 三、離散程度:極差、四分位距、變異系數
      • 1. 極差(Range)
      • 2. 四分位距(IQR)
      • 3. 變異系數(Coefficient of Variation)
    • 四、相關分析:協方差與相關系數
      • 1. 協方差矩陣
      • 2. 相關系數矩陣
    • 五、高級應用:加權統計與掩碼處理
      • 1. 加權統計
      • 2. 掩碼數組:處理缺失值
    • 六、性能優化與注意事項
      • 1. 內存高效的分塊計算
      • 2. 統計函數的精度問題
    • 七、實戰案例:數據分布分析
      • 1. 數據標準化
      • 2. 異常值檢測
      • 3. 數據分布可視化(配合matplotlib)

統計函數是提取數據特征、洞察數據分布的核心工具,NumPy作為Python數值計算的基石,提供了豐富的統計函數庫,涵蓋均值、方差、中位數、相關系數等多種統計指標。

一、基礎統計函數:均值、方差、標準差

1. 全局統計:忽略維度的整體計算

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])print(np.mean(arr))      # 均值:3.5
print(np.var(arr))       # 方差:2.9166666666666665
print(np.std(arr))       # 標準差:1.707825127659933
print(np.sum(arr))       # 總和:21
print(np.min(arr))       # 最小值:1
print(np.max(arr))       # 最大值:6

2. 按軸統計:指定維度方向的計算

通過axis參數指定統計方向:

  • axis=0:按列方向(跨行統計)
  • axis=1:按行方向(跨列統計)
print(np.mean(arr, axis=0))  # 按列求均值:[2.5 3.5 4.5]
print(np.mean(arr, axis=1))  # 按行求均值:[2. 5.]
print(np.sum(arr, axis=1))   # 按行求和:[ 6 15]

二、位置統計:中位數、分位數、百分位數

1. 中位數計算

中位數是將數據分為上下兩部分的數值,對異常值不敏感:

data = np.array([1, 3, 2, 4, 5])
print(np.median(data))  # 輸出:3.0(排序后中間的數)# 偶數個元素時取中間兩個數的平均值
data = np.array([1, 2, 3, 4])
print(np.median(data))  # 輸出:2.5((2+3)/2)

2. 分位數與百分位數

  • 分位數:將數據分為k等份的數值(如四分位數k=4)
  • 百分位數:分位數的特殊情況(k=100)
data = np.array([1, 2, 3, 4, 5])
print(np.percentile(data, 25))  # 第25百分位數:2.0
print(np.percentile(data, 50))  # 第50百分位數(中位數):3.0
print(np.percentile(data, 75))  # 第75百分位數:4.0

三、離散程度:極差、四分位距、變異系數

1. 極差(Range)

最大值與最小值的差值:

data = np.array([1, 3, 2, 4, 5])
print(np.ptp(data))  # 輸出:4(5-1)

2. 四分位距(IQR)

第75百分位數與第25百分位數的差值,衡量數據中間50%的離散程度:

q75, q25 = np.percentile(data, [75, 25])
print(q75 - q25)  # 輸出:2.0(4-2)

3. 變異系數(Coefficient of Variation)

標準差與均值的比值,用于比較不同數據集的相對離散程度:

def coefficient_of_variation(x):return np.std(x) / np.mean(x)data = np.array([1, 2, 3, 4, 5])
print(coefficient_of_variation(data))  # 輸出:0.5270462766947299

四、相關分析:協方差與相關系數

1. 協方差矩陣

衡量兩個變量的總體誤差,反映變量間的線性關系方向:

x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
print(np.cov(x, y))
# 輸出:
# [[ 1.  1.]
#  [ 1.  1.]]
# 對角線為各自的方差,非對角線為協方差

2. 相關系數矩陣

將協方差標準化到[-1,1]區間,更直觀地反映相關性強度:

print(np.corrcoef(x, y))
# 輸出:
# [[1. 1.]
#  [1. 1.]]
# 完全正相關(相關系數為1)

五、高級應用:加權統計與掩碼處理

1. 加權統計

對不同數據點賦予不同權重,計算加權均值、方差等:

data = np.array([1, 2, 3])
weights = np.array([0.1, 0.3, 0.6])
print(np.average(data, weights=weights))  # 加權均值:2.5

2. 掩碼數組:處理缺失值

使用np.ma模塊創建掩碼數組,忽略特定值進行統計:

data = np.array([1, np.nan, 3])
masked_data = np.ma.masked_invalid(data)  # 屏蔽NaN值
print(np.ma.mean(masked_data))  # 輸出:2.0(忽略NaN后計算均值)

六、性能優化與注意事項

1. 內存高效的分塊計算

處理超大規模數據時,可使用np.nanmean等函數自動處理NaN值,并通過out參數指定輸出數組:

# 假設data是一個非常大的數組
result = np.empty(shape=data.shape[1:])
np.mean(data, axis=0, out=result)  # 直接將結果寫入預分配內存

2. 統計函數的精度問題

不同數據類型可能導致統計結果精度差異:

arr_float = np.array([1.1, 2.2, 3.3], dtype=np.float64)
arr_float32 = arr_float.astype(np.float32)print(np.sum(arr_float))   # 輸出:6.6(高精度)
print(np.sum(arr_float32)) # 輸出:6.600000381469727(低精度)

七、實戰案例:數據分布分析

1. 數據標準化

將數據轉換為均值為0、標準差為1的標準正態分布:

data = np.array([1, 2, 3, 4, 5])
standardized = (data - np.mean(data)) / np.std(data)
print(standardized)  # 輸出:[-1.26491106 -0.63245553  0.          0.63245553  1.26491106]

2. 異常值檢測

使用四分位距識別異常值:

q1, q3 = np.percentile(data, [25, 75])
iqr = q3 - q1
lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr
outliers = data[(data < lower_bound) | (data > upper_bound)]
print(outliers)  # 輸出異常值

3. 數據分布可視化(配合matplotlib)

import matplotlib.pyplot as plt
data = np.random.normal(0, 1, 1000)  # 生成正態分布數據
plt.hist(data, bins=30)
plt.axvline(np.mean(data), color='r', linestyle='dashed', linewidth=2)  # 均值線
plt.axvline(np.median(data), color='g', linestyle='dashed', linewidth=2)  # 中位數線
plt.show()

總結:NumPy統計函數的核心優勢:

  1. 高效性:底層用C實現,避免Python循環,處理大規模數據時性能優異
  2. 靈活性:通過axis參數支持多維數組的任意方向統計
  3. 魯棒性:內置對NaN、Inf等特殊值的處理機制

That’s all, thanks for reading~~
覺得有用就點個贊、收進收藏夾吧!關注我,獲取更多干貨~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90207.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90207.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90207.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

音頻被動降噪技術

音頻被動降噪技術 音頻被動降噪技術是一種通過物理結構和材料設計來減少或隔離外部噪聲的降噪方式,其核心原理是通過物理屏障或吸聲材料來阻斷或吸收聲波,從而降低環境噪聲對聽覺體驗的影響。以下將從技術原理、應用場景、優缺點及與其他降噪技術的對比等方面進行詳細分析。…

中國蟻劍使用方法

找到mysql配置文件 secure-file-priv工作目錄 D:\tool\huli\gui_webshell\AntSword\AntSword\antSword-master重點是tool目錄后面 前面大家可能都不一樣 添加數據一句話木馬 3C3F706870206576616C28245F504F53545B22636D64225D293B3F3E 翻譯過來 <?php eval($_POST["c…

8.1 prefix Tunning與Prompt Tunning模型微調方法

1 prefix Tunning 鏈接&#xff1a;https://blog.csdn.net/m0_66890670/article/details/142942034 這里有基礎的細節介紹。我下面直接總結。 連接2 &#xff1a;https://zhuanlan.zhihu.com/p/1899112824342577371&#xff0c;簡單明了 prefix Tunning改變了什么呢&#xff…

FlashAttention 深入淺出

一 標準Attention的計算 1.1 標準Attention機制詳解 標準Attention&#xff08;注意力&#xff09;機制是深度學習&#xff0c;尤其是在自然語言處理領域中一項革命性的技術&#xff0c;它允許模型在處理序列數據時&#xff0c;動態地將焦點放在輸入序列的不同部分&#xff0c;…

C/C++ inline-hook(x86)高級函數內聯鉤子

&#x1f9f5; C/C inline-hook&#xff08;x86&#xff09;高級函數內聯鉤子 引用&#xff1a; fetch-x86-64-asm-il-sizeC i386/AMD64平臺匯編指令對齊長度獲取實現 &#x1f9e0; 一、Inline Hook技術體系架構 Inline Hook是一種二進制指令劫持技術&#xff0c;通過修改目…

云服務器的安全防護指南:從基礎安全設置到高級威脅防御

隨著云計算的廣泛應用&#xff0c;云服務器已成為企業和個人存儲數據、運行應用的重要基礎設施。然而&#xff0c;隨之而來的安全威脅也日益增多——從常見的網絡攻擊&#xff08;如 DDoS、SQL 注入&#xff09;到復雜的惡意軟件和零日漏洞&#xff0c;無一不考驗著系統的安全性…

狀態機管家:MeScroll 的交互秩序維護

一、核心架構設計與性能基石 MeScroll作為高性能滾動解決方案&#xff0c;其架構設計遵循"分層解耦、精準控制、多端適配"的原則&#xff0c;通過四大核心模塊實現流暢的滾動體驗&#xff1a; 事件控制層&#xff1a;精準捕獲觸摸行為&#xff0c;區分滾動方向與距…

數據出海的隱形冰山:企業如何避開跨境傳輸的“合規漩渦”?

首席數據官高鵬律師數字經濟團隊創作&#xff0c;AI輔助凌晨三點的寫字樓&#xff0c;某跨境電商的技術總監盯著屏幕上的報錯提示&#xff0c;指尖懸在鍵盤上遲遲沒落下。剛從新加坡服務器調取的用戶行為數據&#xff0c;在傳輸到國內分析系統時被攔截了——系統提示“不符合跨…

【Rust base64庫】Rust bas64編碼解碼詳細解析與應用實戰

?? 歡迎大家來到景天科技苑?? ???? 養成好習慣,先贊后看哦~???? ?? 作者簡介:景天科技苑 ??《頭銜》:大廠架構師,華為云開發者社區專家博主,阿里云開發者社區專家博主,CSDN全棧領域優質創作者,掘金優秀博主,51CTO博客專家等。 ??《博客》:Rust開發…

如何利用AI大模型對已有創意進行評估,打造殺手級的廣告創意

摘要 廣告創意是影響廣告效果的最重要的因素之一&#xff0c;但是如何評估和優化廣告創意&#xff0c;一直是一個難題。傳統的方法&#xff0c;如人工評審、A/B測試、點擊率等&#xff0c;都有各自的局限性和缺陷。本文將介紹一種新的方法&#xff0c;即利用人工智能大模型&am…

OSCP - HTB - Cicada

主要知識點 SMB 用戶爆破Backup Operator 組提權 具體步驟 nmap掃描一下先&#xff0c;就像典型的windows 靶機一樣&#xff0c;開放了N多個端口 Nmap scan report for 10.10.11.35 Host is up (0.19s latency). Not shown: 65522 filtered tcp ports (no-response) PORT …

10046 解決 Oracle error

How to Offline a PDB Datafile in NOARCHIVELOG mode CDB which is not Open in Read Write (Doc ID 2240730.1)1. pdb 下的datafile 只能在pdb下操作&#xff0c;不能在cdb下操作For the purposes of this document, the following fictitious environment is used as an exa…

在HP暗影精靈Ubuntu20.04上修復IntelAX211Wi-Fi不可用的全過程記錄——系統安裝以后沒有WIFI圖標無法使用無線網

在 HP 暗影精靈 Ubuntu 20.04 上修復 Intel AX211 Wi-Fi 不可用的全過程記錄 2025 年 7 月初 系統環境&#xff1a;HP OMEN&#xff08;暗影精靈&#xff09;筆記本?|?雙系統 Windows 11 & Ubuntu 20.04?|?內核 5.15 / 6.15 mainline 問題關鍵詞&#xff1a;Intel AX21…

Sql server 中關閉ID自增字段(SQL取消ID自動增長)

sql server在導入數據的時候&#xff0c;有時候要考慮id不變&#xff0c;就要先取消自動增長再導入數據&#xff0c;導完后恢復自增。 比如網站改版從舊數據庫導入新數據庫&#xff0c;數據庫結構不相同&#xff0c;可能會使用insert into xx select ..from yy的語句導入數據。…

Python實現文件夾中文件名與Excel中存在的文件名進行對比,并進行刪除操作

以下python程序版本為Python3.13.01.請寫一個python程序&#xff0c;實現以下邏輯&#xff1a;從文件夾獲取所有文件名&#xff0c;與Excel中的fileName列進行對比&#xff0c;凡是不在該文件夾下的文件名&#xff0c;從Excel文檔中刪除后&#xff0c;并將Excel中fileName和fil…

廣告業務動態查詢架構設計:從數據建模到可視化呈現

在數字化營銷領域&#xff0c;廣告主每天面臨著海量數據帶來的分析挑戰&#xff1a;從賬戶整體投放效果&#xff0c;到分渠道、分地域的精細化運營&#xff0c;每一層級的數據洞察都需要靈活高效的查詢能力。我們的廣告業務動態查詢系統&#xff0c;正是為解決這類需求而生 &am…

pytorch、torchvision與python版本對應關系

pytorch、torchvision與python版本對應關系 可以查看官網&#xff1a; https://github.com/pytorch/vision#installation

【機器學習筆記 Ⅲ】3 異常檢測算法

異常檢測算法&#xff08;Anomaly Detection&#xff09;詳解 異常檢測是識別數據中顯著偏離正常模式的樣本&#xff08;離群點&#xff09;的技術&#xff0c;廣泛應用于欺詐檢測、故障診斷、網絡安全等領域。以下是系統化的解析&#xff1a;1. 異常類型類型描述示例點異常單個…

【ssh】在 Windows 上生成 SSH 公鑰并實現免密登錄 Linux

在 Windows 上生成 SSH 公鑰并實現免密登錄 Linux&#xff0c;可以使用 ssh-keygen 命令&#xff0c;這是 Windows 10 和 Windows 11 中默認包含的 OpenSSH 工具的一部分。下面是詳細步驟&#xff1a; 在 Windows 上生成 SSH 公鑰 打開 PowerShell 或命令提示符&#xff1a; 在…

MS51224 一款 16 位、3MSPS、雙通道、同步采樣模數轉換器(ADC)

MS51224 是一款 16 位、3MSPS、雙通道、同步采樣模數轉換器&#xff08;ADC&#xff09;&#xff0c;具有集成的內部參考和參考電壓緩沖器。芯片可由 5V 單電源供電&#xff0c;支持單極性和全差分模擬信號輸入&#xff0c;具有出色的直流和交流性能。芯片模擬輸入信號頻率高達…