數據分析專欄記錄之 -基礎數學與統計知識

數據分析專欄記錄之 -基礎數學與統計知識

1、描述性統計

'''均值'''
data_set = [10, 20, 30, 40, 50]
mean = sum(data_set)/len(data_set)'''np  里面的函數,對二維進行操作時,   默認每一列 '''
mean1 = np.mean(data_set)
print(mean, mean1)s = 0
for i in data_set:s = s + i
print(s/len(data_set))
30.0 30.0
30.0
""" 平均數  、  加權平均數  的實現"""
import numpy as np
average = np.average(data_set)
print(average)weight_average = np.average(data_set, weights=[1, 2, 1, 2, 1])
print(weight_average)
30.0
30.0
"""標準差  /  均方差 / 歐氏距離"""
import numpy as np
std = np.std(data_set)
print(std)"""方差"""var = np.var(data_set)
print(var)def avg(var_Calculation):s = 0for i in var_Calculation:s = s+ireturn (s/len(var_Calculation))
av = avg(data_set)
sum_var = 0
for i in data_set:sum_var += ((i-av)**2)
print(sum_var/len(data_set))
14.142135623730951
200.0
200.0
"""中位數"""
print(np.median(data_set))speed = [99,86,87,88,111,86,103,87,94,78,77,85,86]
i = 0
while i<=len(speed)-2:j = i+1while j <= len(speed)-1:if speed[i] < speed[j]:t = speed[i]speed[i] = speed[j]speed[j] = tj = j+1i = i+1if len(speed)%2 ==1:print(speed[int(len(speed)/2)])
else:print((speed[int(len(speed)/2)] + speed[int(len(speed)/2)-1])/2)
30.0
87
"""眾數"""
from scipy import stats
speed = [99,86,87,88,111,86,103,87,94,78,77,85,86]
x = stats.mode(speed)
print(x)zd = {}
for i in speed:zd[i]=0
print(zd)for j in speed:if j in zd.keys():zd[j] += 1
print(zd)maxkey = 0
maxvalue = 0
for key in zd.keys():if zd[key]>maxvalue:maxkey = keymaxvalue = zd[key]
print(maxkey, maxvalue)
ModeResult(mode=np.int64(86), count=np.int64(3))
{99: 0, 86: 0, 87: 0, 88: 0, 111: 0, 103: 0, 94: 0, 78: 0, 77: 0, 85: 0}
{99: 1, 86: 3, 87: 2, 88: 1, 111: 1, 103: 1, 94: 1, 78: 1, 77: 1, 85: 1}
86 3
"""
百分位數
例如:假設我們有一個數組,包含住在一條街上的人的年齡。
ages = [5,31,43,48,50,41,7,11,15,39,80,82,32,2,8,6,25,36,27,61,31]
什么是 75 百分位數?答案是 43,這意味著 75% 的人是 43 歲或以下。
"""
ages = [5,31,43,48,50,41,7,11,15,39,80,82,32,2,8,6,25,36,27,61,31]
x = np.percentile(ages, 80)
print(x)def per(sz, pe):sz.sort()slen = len(sz)return sz[int((pe * slen)/100)]
print(per(ages, 80))
48.0
48
"""
定義:偏度(skewness),是統計數據分布偏斜方向和程度的度量,或者說是統計數據分布非對稱程度的數字特征。說人話:偏度或偏態系數或偏度系數(Skewness)用來度量分布是否對稱,一個分布如果不對稱,則被稱為偏度。分布分為三種:對稱分布(正態分布)、正偏分布(右偏分布)、負偏分布(左偏分布)
對稱分布的特點:左右對稱,均值 = 中位數 = 眾數,偏度 = 0
正偏分布的特點:右側長尾,均值 >中位數 >眾數,偏度 > 0
負偏分布的特點:左側長尾,均值 < 中位數 < 眾數,偏度 < 0step
繪制圖像展示
"""
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
fig, axs = plt.subplots(1, 3, figsize=(10, 4))def plot():""" 標準正態 :draw standard deviation normal distribution"""mu = 0.0  #均值sd = 1.0  #標準差x = np.linspace(mu-4*sd, mu+4*sd, 100)y = stats.norm.pdf(x)""" 正偏分布 """x1 = np.linspace(mu-3*sd, mu+5*sd, 100)y1 = stats.norm.pdf(x1)""" 負偏分布 """x2 = np.linspace(mu-5*sd, mu+3*sd, 100)y2 = stats.norm.pdf(x2)axs[0].plot(x, y, "g", linewidth=2, color='black')axs[1].plot(x1, y1, "g1", linewidth=2, color='orange')axs[2].plot(x2, y2, "g2", linewidth=2, color='green')plt.grid(True)plt.show()if __name__ == '__main__':plot()

在這里插入圖片描述

"""
偏度:
根據數據, 計算均值、中位數、眾數  得出偏度
"""
import pandas as pd
from scipy import stats
import numpy as np
speed_ = [1,4,6,8,10,20]# 計算公式1
mean = np.mean(speed_)
std = np.std(speed_, ddof=1)
n = len(speed_)
a1 = sum(((speed_-mean)/std)**3)
a2 = a1*(n)/((n-1)*(n-2))
print("偏度:",a2)# 計算公式2
mean = np.mean(speed_)
std = np.std(speed_, ddof=1)
n = len(speed_)
a1 = sum(((speed_-mean)/std)**3)
a2 = a1/(n)
print(a2)'''
可以看到使用不同公式計算得到的偏度不同:
公式1得到的偏度:1.2737636108819756
公式2得到的偏度:0.7076464504899865
'''# 調用函數計算
d = stats.skew(speed_, bias=False)
print("偏度:", d)
偏度: 1.2737636108819756
0.7076464504899865
偏度: 1.2737636108819756

計算公式1:
S=n(n?1)(n?2)∑i=1n[(Xi?μσ)3]S=\frac{n}{(n-1)(n-2)} \sum_{i=1}^{n}\left[\left(\frac{X_{i}-\mu}{\sigma}\right)^{3}\right]S=(n?1)(n?2)n?i=1n?[(σXi??μ?)3]

計算公式2:
S=1n∑i=1n[(Xi?μσ)3]S=\frac{1}{n} \sum_{i=1}^{n}\left[\left(\frac{X_{i}-\mu}{\sigma}\right)^{3}\right]S=n1?i=1n?[(σXi??μ?)3]

"""
峰度
定義:峰度(peakedness;kurtosis)又稱峰態系數。表征概率密度分布曲線在平均值處峰值高低的特征數。
說人話:峰度反映了峰部的尖度,用來度量數據在中心聚集程度,峰度越大分布圖越尖,峰度越小分布圖越矮胖。
"""import numpy as np
import matplotlib.pyplot as plt
from scipy import statsdef plot():"""draw standard deviation normal distribution"""mu = 0.0    # meansd1 = 1.0    # stdsd2 = 2.0sd3 = 3.0# 特征:x參數一致,但是擴散開的程度不一樣。y不一致,向上的程度不一樣# red linex = np.linspace(mu-3*sd1, mu+3*sd1, 50)y = stats.norm.pdf(x)plt.plot(x, y , "r", linewidth=2)# green linex2 = np.linspace(mu-6*sd1, mu+6*sd1, 50)y2 = stats.norm.pdf(x2, mu, sd2)plt.plot(x2, y2, "g", linewidth=2)# blue linex3 = np.linspace(mu-10*sd1, mu+10*sd1, 50)y3 = stats.norm.pdf(x3, mu, sd3)plt.plot(x3, y3, "b", linewidth=2)plt.grid(True)  # 顯示網格線plt.show()if __name__ == '__main__':plot()

在這里插入圖片描述

"""
對于正態分布來說峰度=3,部分統計軟件會給出超額峰度,超額峰度=峰度-3。
中鋒分布的超額峰度=0, 尖峰分布的超額峰度>0,低峰分布的超額峰度<0。
"""import numpy as np
import pandas as pd
from scipy import statsarr = np.array([1,4,6,8,10,20])
#標準差
std = stats.tstd(arr, ddof=1)
# 偏度
skew_ = stats.skew(arr, bias=False)
# 峰度
e = stats.kurtosis(arr, bias=False)
print(e)"""  面對pd數據  """
data = pd.DataFrame(arr)
print(data.kurt())
2.154642470375478
0    2.154642
dtype: float64
"""一維數據   曲線圖"""
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np# 讀取csv文件
reviews = pd.read_csv("/content/drive/MyDrive/數據分析/HC.csv")# 第一列、第二列的數據
# print(reviews['0'], reviews['0.1'])
# 繪制曲線圖
plt.plot(reviews['0'], reviews['0.1'])
plt.xlabel('Time')
plt.ylabel("Position")
plt.title("Position vs Time")
plt.tight_layout()
plt.show()# 根據速度 求 加速度,  繪制加速度曲線,【 time a 】
t = reviews['0']
s = reviews['0.1']
# 計算速度 (前向差分法)
velocity = np.diff(s)/ np.diff(t) # v = Δp / Δt
# 為了方便繪圖,給速度數組添加一個最后值,與時間點對齊
velocity = np.append(velocity, velocity[-1])
# 繪制位置和速度的圖像
plt.plot(reviews['0'], velocity*100)
plt.xlabel('Time')
plt.ylabel("Velocity")
plt.title("Velocity vs Time")
plt.tight_layout()
plt.show()# 根據速度 求 加速度,  繪制加速度曲線,【 time a 】
t = reviews['0']
# 計算速度 (前向差分法)
Acceleration = np.diff(velocity)/ np.diff(t) # v = Δp / Δt
# 為了方便繪圖,給速度數組添加一個最后值,與時間點對齊
Acceleration = np.append(Acceleration, Acceleration[-1])
# 繪制位置和速度的圖像
plt.plot(reviews['0'], Acceleration)
plt.xlabel('Time')
plt.ylabel("a")
plt.title("a vs Time")
plt.tight_layout()
plt.show()

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np# 讀取 CSV 文件
reviews = pd.read_csv("/content/drive/MyDrive/數據分析/HC.csv")# 時間 (t) 和位置 (s)
t = reviews['0'].to_numpy()
s = reviews['0.1'].to_numpy()# === 使用中心差分法計算速度和加速度 ===
velocity = np.gradient(s, t)           # 速度 v = ds/dt
acceleration = np.gradient(velocity, t) # 加速度 a = dv/dt# === 繪制三個曲線 ===
plt.figure(figsize=(10, 8))# 路程-時間
plt.subplot(3, 1, 1)
plt.plot(t, s, 'b', linewidth=2)
plt.ylabel('Position')
plt.title('Position, Velocity, and Acceleration vs Time')# 速度-時間
plt.subplot(3, 1, 2)
plt.plot(t, velocity, 'g', linewidth=2)
plt.ylabel('Velocity')# 加速度-時間
plt.subplot(3, 1, 3)
plt.plot(t, acceleration, 'r', linewidth=2)
plt.xlabel('Time')
plt.ylabel('Acceleration')plt.tight_layout()
plt.show()# === 計算指定時間點的速度(例如 t=2.5s)===
target_time = 2.5
velocity_at_target = np.interp(target_time, t, velocity)
print(f"t = {target_time}s 時的速度: {velocity_at_target:.4f}")

在這里插入圖片描述

致謝

靠咖啡續命的牛馬,👍點贊 📁 關注 💬評論 💰打賞。


參考

[1] deepseek等ai


往期回顧

  • 無,新手上車

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

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

相關文章

《星辰建造師:C++多重繼承的奇幻史詩》

&#x1f30c;&#x1f525; 《星辰建造師&#xff1a;多重繼承與this指針的終極史詩》 &#x1f525;&#x1f30c;—— 一場融合魔法、科技與哲學的C奇幻冒險&#x1f320;&#x1f30c; 序章&#xff1a;代碼宇宙的誕生 &#x1f30c;&#x1f320;在無盡的代碼維度中&#…

云計算-OpenStack 運維開發實戰:從 Restful API 到 Python SDK 全場景實現鏡像上傳、用戶創建、云主機部署全流程

一、python-Restful Api 簡介 Restful API 是一種軟件架構風格,基于 HTTP 協議設計,通過統一的接口(如 URL 路徑)和標準的 HTTP 方法(GET/POST/PUT/DELETE 等)實現資源(如數據、文件等)的操作,具有無狀態、可緩存、客戶端 - 服務器分離等特點。方法如下 用 GET 請求獲…

RxJava 在 Android 中的深入解析:使用、原理與最佳實踐

前言RxJava 是一個基于觀察者模式的響應式編程庫&#xff0c;它通過可觀察序列和函數式操作符的組合&#xff0c;簡化了異步和事件驅動程序的開發。在 Android 開發中&#xff0c;RxJava 因其強大的異步處理能力和簡潔的代碼風格而廣受歡迎。本文將深入探討 RxJava 的使用、核心…

面試實戰 問題三十 HTTP協議中TCP三次握手與四次揮手詳解

HTTP協議中TCP三次握手與四次揮手詳解 在HTTP協議中&#xff0c;連接建立和斷開依賴于底層的TCP協議。雖然HTTP本身不定義握手過程&#xff0c;但所有HTTP通信都通過TCP三次握手建立連接&#xff0c;通過四次揮手斷開連接。以下是詳細解析&#xff1a;一、TCP三次握手&#xff…

讀《精益數據分析》:雙邊市場的核心指標分析

雙邊市場數據分析指南&#xff1a;從指標體系到實戰落地&#xff08;基于《精益數據分析》框架&#xff09;在互聯網平臺經濟中&#xff0c;雙邊市場&#xff08;如電商、出行、外賣、自由職業平臺等&#xff09;的核心矛盾始終是"供需平衡與效率優化"。這類平臺連接…

Queue參考代碼

queue.c #include "queue.h" #include "stdlib.h" // 初始化循環隊列 void initializeCircularQueue(CircularQueue *cq, uint8_t *buffer, uint32_t size) {cq->front 0;cq->rear 0;cq->count 0;cq->size size;cq->data buffer; }…

通過時間計算地固系到慣性系旋轉矩陣

通過時間計算地固系到慣性系旋轉矩陣 1. 引言 在航天工程和衛星導航領域&#xff0c;經常需要在地固坐標系(ECEF)和慣性坐標系(ECI)之間進行轉換。本文將詳細介紹如何根據UTC時間計算這兩個坐標系之間的旋轉矩陣&#xff0c;并提供完整的C語言實現。 2. 基本概念 2.1 坐標系定義…

【Datawhale AI 夏令營】金融文檔分析檢索增強生成系統的架構演變與方法論進展

# **金融文檔分析檢索增強生成系統的架構演變與方法論進展****第一部分&#xff1a;基礎原則和基線系統分析****第一部分&#xff1a;金融領域檢索增強生成范式的解構****第二部分&#xff1a;基線剖析&#xff1a;流水線的二分法****同步軌跡 (SimpleRAG)****異步改進 (AsyncS…

C語言相關簡單數據結構:順序表

目錄 1.順序表的概念及結構 1.1 線性表 如何理解邏輯結構和物理結構&#xff1f; 1.2 順序表分類 順序表和數組的區別&#xff1a; 順序表分類&#xff1a; 靜態順序表 動態順序表 1.3 動態順序表的實現 初始化 尾插 頭插 尾刪 頭刪 在指定位置之前插入數據 刪…

nginx配置代理服務器

Nginx 作為代理服務器時&#xff0c;主要用于反向代理&#xff08;最常用&#xff0c;轉發客戶端請求到后端服務&#xff09;或正向代理&#xff08;較少用&#xff0c;為客戶端提供訪問外部網絡的代理&#xff09;。以下是兩種場景的具體配置示例&#xff1a; 一、反向代理配置…

MySQL數據庫知識體系總結 20250813

一、數據庫的原理 1.數據庫的分類 我們可以根據數據的結構類型&#xff0c;將數據分成三類&#xff0c;分別是&#xff1a;結構化數據&#xff0c;半結構化數據&#xff0c;非結構化數據。 要點&#xff1a;對于結構化數據來講通常是先有結構再有數據。要點&#xff1a;對于半…

C++ 中構造函數參數對父對象的影響:父子控件管理機制解析

文章目錄C 中構造函數參數對父對象的影響&#xff1a;父子控件管理機制解析1. Qt 中的父對象管理機制2. 構造函數傳遞父對象的不同方式2.1. 父控件是 QWidget parent&#xff08;通用方式&#xff09;分析&#xff1a;2.2. 父控件是 Books_Client parent&#xff08;限制父控件…

直播美顏SDK開發實戰:高性能人臉美型的架構與實現

在直播行業里&#xff0c;美顏已經不再是錦上添花&#xff0c;而是標配中的標配。無論是游戲主播、帶貨達人&#xff0c;還是唱歌、跳舞的才藝主播&#xff0c;直播美顏SDK往往決定了用戶的第一印象和停留時長。尤其是高性能人臉美型技術&#xff0c;不僅能讓主播的五官更加自然…

JavaWeb(蒼穹外賣)--學習筆記18(Apache POI)

前言 本篇文章是學習B站黑馬程序員蒼穹外賣的學習筆記&#x1f4d1;。我的學習路線是Java基礎語法-JavaWeb-做項目&#xff0c;管理端的功能學習完之后&#xff0c;就進入到了用戶端微信小程序的開發&#xff0c;用戶端開發的流程大致為用戶登錄—商品瀏覽&#xff08;其中涉及…

OpenJDK 17 源碼 安全點輪詢的信號處理流程

OpenJDK 17 源碼&#xff0c;安全點輪詢的信號處理流程如下&#xff08;重點分析安全點輪詢相關部分&#xff09;&#xff1a;核心信號處理流程信號觸發&#xff1a;當線程訪問安全點輪詢內存頁時&#xff08;SafepointMechanism::is_poll_address&#xff09;&#xff0c;會觸…

InfluxDB 在工業控制系統中的數據監控案例(一)

工業控制系統數據監控的重要性**在工業領域&#xff0c;生產過程的復雜性和連續性使得數據監控成為保障生產穩定運行的關鍵環節。通過實時收集、處理和分析生產數據&#xff0c;企業能夠及時掌握設備運行狀態、產品質量信息以及生產流程的各項參數&#xff0c;從而為生產決策提…

嵌入式學習(day26)frambuffer幀緩沖

一、UI技術: User interface&#xff08;1&#xff09;framebuffer: 幀緩沖、幀緩存技術 Linux內核專門為圖形化顯示提供的一套應用程序接口。流程如下&#xff1a;1. 打開顯示設備 (/dev/fb0) 2. 獲取顯示設備相關參數&#xff08;分辨率&#xff0c;像素格式&#xff09;---》…

408每日一題筆記 41-50

答案&#xff1a;A 解析&#xff1a;CSMA/CD 協議里&#xff0c;“爭用期” 就是信號在總線上最遠兩個端點之間往返傳輸的時間&#xff0c;也叫沖突窗口&#xff0c;選 A。

【物聯網】基于樹莓派的物聯網開發【26】——樹莓派開啟串口并配置串口助手Minicom

串口配置 &#xff08;1&#xff09;打開串口&#xff0c;終端輸入命令&#xff1a; sudo raspi-config &#xff08;2&#xff09;串口設置選擇Interfacing Options→Serial port→No→Yes→ok&#xff08;3&#xff09;設置開啟&#xff0c;打開串口 &#xff08;4&#xff0…

考研/考公知識共享平臺的設計與實現-項目分享

考研/考公知識共享平臺的設計與實現-項目分享項目介紹項目摘要學生前臺用例圖管理員用例圖系統流程圖系統功能結構圖實體圖學生信息實體圖資料信息管理實體圖報考指南管理寫在最后項目介紹 使用者&#xff1a;管理員、學生前臺、學生后臺 開發技術&#xff1a;MySQLJavaSpring…