在Python中,NumPy、Pandas和Matplotlib是進行數據分析和數據可視化的三個核心庫。它們各自有不同的功能,但經常一起使用來處理和分析數據。
1、NumPy
NumPy(Numerical Python)是一個用于科學計算的庫,提供了高性能的多維數組對象以及這些數組的操作工具。它是Pandas和Matplotlib的基礎。
核心功能:提供高性能的多維數組對象和數學運算工具
主要功能:
-
創建和操作多維數組
-
數學函數(如線性代數、傅里葉變換等)
關鍵特性:
-
廣播機制:不同形狀數組間的運算
-
向量化操作:避免顯式循環
-
線性代數:矩陣運算、特征值分解等
import numpy as np# 創建一個數組
arr = np.array([1, 2, 3, 4, 5])
print(arr)# 創建二維數組
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_2d)
2、Pandas
核心功能:提供高效的數據結構和數據分析工具
Pandas?是一個強大的數據分析工具庫,提供了快速、靈活和表達式豐富的數據結構,旨在使“關系”或“標簽”數據的處理既簡單又直觀。
主要功能:
-
數據清洗和準備
-
數據分析和操作
-
數據聚合和分組
-
時間序列功能
關鍵特性
-
DataFrame:二維表格型數據結構
-
時間序列:強大的時間處理功能
-
數據清洗:處理缺失值、重復值等
-
數據I/O:支持多種文件格式讀寫
import pandas as pd
import numpy as np# 創建一個DataFrame
data = {'Name': ['Tom', 'Nick', 'Krish', 'Jack'],
'Age': [20, 21, 19, 18]}
df = pd.DataFrame(data)
print(df)# 讀取CSV文件
df = pd.read_csv('data.csv')
print(df.head()) # 顯示前幾行數據
3、Matplotlib
核心功能:Python 的基礎繪圖庫
Matplotlib?是一個繪圖庫,用于創建靜態、動態和交互式的可視化。它是Python中最常用的繪圖庫之一。
主要功能:
-
創建各種靜態、動態和交互式圖表和圖形
-
支持多種圖表類型,如線圖、散點圖、條形圖等
-
高度可定制的外觀和布局選項
關鍵特性
-
多種圖表類型:線圖、柱狀圖、散點圖、餅圖等
-
高度可定制:幾乎可以調整所有視覺元素
-
面向對象和MATLAB風格兩種API
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd# 使用Pandas創建數據
data = {'Name': ['Tom', 'Nick', 'Krish', 'Jack'], 'Age': [20, 21, 19, 18]}
df = pd.DataFrame(data)# 使用Matplotlib繪制條形圖
plt.bar(df['Name'], df['Age'])
plt.xlabel('Name')
plt.ylabel('Age')
plt.title('Age Distribution')
plt.show()
結合使用這三個庫可以高效地進行數據處理、分析和可視化。可以使用Pandas來加載和處理數據,使用NumPy進行數據處理(例如數組操作),然后使用Matplotlib來創建圖表以展示分析結果
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt# 1. 使用NumPy進行數值計算
data = np.random.randn(100, 4)# 2. 使用Pandas進行數據整理和分析
df = pd.DataFrame(data, columns=['A', 'B', 'C', 'D'])
summary = df.describe()# 3. 使用Matplotlib可視化結果
df.plot(kind='box')
plt.title('數據分布')
plt.show()
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt# 使用Pandas讀取數據并處理數據
df = pd.read_csv('data.csv') # 假設有一個CSV文件data.csv包含一些數據
df['NewColumn'] = df['Column1'] + df['Column2'] # 添加新列作為示例操作
df = df[df['NewColumn'] > 100] # 數據過濾示例# 使用Matplotlib進行可視化
plt.figure(figsize=(10, 6)) # 設置圖表大小
plt.plot(df['Date'], df['NewColumn'], marker='o') # 繪制時間序列數據,例如日期與某值的趨勢圖
plt.xlabel('Date') # X軸標簽
plt.ylabel('Value') # Y軸標簽
plt.title('Value Trend Over Time') # 圖表標題
plt.grid(True) # 顯示網格線,提高可讀性
plt.show() # 顯示圖表
一、安裝NumPy環境
1、使用venv虛擬環境
在Python中使用venv
虛擬環境有幾個關鍵的好處,這使得它成為管理項目依賴和環境的首選方法。
1、隔離性:
使用venv
可以創建一個獨立的Python環境,這意味著你可以為不同的項目安裝不同版本的庫,而不會相互干擾。這對于避免依賴沖突非常有用。
2、版本控制:
你可以為每個項目指定特定版本的Python解釋器和庫。這樣,你可以確保項目的穩定性和可重復性,無論在哪個環境中運行代碼。
3、簡化依賴管理:
使用venv
,你可以很容易地安裝、更新或刪除項目所需的庫,而不會影響到系統級的Python環境。這大大簡化了依賴管理。
4、易于分享:
當你需要將項目分享給其他人或在不同的機器上工作時,venv
可以確保所有必要的依賴都被包含在虛擬環境中,使得項目的設置和運行變得簡單。
創建虛擬環境
-
打開終端或命令提示符。
-
導航到你的項目目錄。
-
運行以下命令來創建一個虛擬環境(例如,名為
venv
):
# 使用 virtualenv 創建虛擬環
virtualenv .venv# 使用 Python 自帶的 venv 模
python -m venv .venv
激活虛擬環境
# 在Windows上:
venv\Scripts\activate# 在macOS和Linux上:
source venv/bin/activate
2、安裝 NumPy;Pandas;Matplotlib
首先,確保你的系統上已經安裝了Python。你可以通過在終端或命令提示符中輸入python --version
或python3 --version
來檢查Python的版本
使用Python虛擬環境:為了避免系統級的包沖突,建議使用虛擬環境。你可以使用venv
(Python 3.3及以上版本內置)或conda
(Anaconda/Miniconda)來創建和管理虛擬環境。例如,使用venv
:
cd .venv
# 切換到虛擬環境下
cd Scripts
# 激活虛擬環境
activate # 安裝numpy,pandas,matplotlib;使用其他鏡像源,如阿里云、清華源、豆瓣
# 使用阿里云鏡像源
pip install numpy pandas matplotlib -i https://mirrors.aliyun.com/pypi/simple/
# 使用清華源
pip install numpy pandas matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
# 使用豆瓣鏡像源
pip install numpy pandas matplotlib -i https://pypi.douban.com/simple # 不使用鏡像源(默認官方源),如果你的網絡環境可以訪問官方pypi源,可以直接使用默認源安裝:
pip install numpy pandas matplotlib
3、安裝 ipyhton(更好的交互式Python編程環境)
# 使用阿里云鏡像源
pip install ipython -i https://mirrors.aliyun.com/pypi/simple/
4、安裝 Jupyter Notebook
# 使用阿里云鏡像源
pip install jupyter -i https://mirrors.aliyun.com/pypi/simple/
安裝之后,輸入jupyter notebook(切換到項目目錄下,再執行jupyter notebook命令)
jupyter啟動默認瀏覽器
在當前項目目錄下右擊,選擇【New Notebook】
然后寫入Python代碼,如輸入print('hello'),運行(Ctrl + Enter)
Jupyter Notebook有兩種鍵盤輸入模式
命令模式:鍵盤輸入運行程序命令;這時單元格框線為藍色
編輯模式:允許你往單元格中鍵入代碼或文本;這時單元格框線是綠色
Jupyter Notebook常用快捷鍵
【1】編輯模式(Enter 鍵啟動)
Tab:代碼補全或縮進
Shift + Tab:提示
Shift + Enter:允許本單元,選中下一單元
Ctrl + Enter:運行本單元
Alt + Enter:運行本單元,在下面插入一單元
【2】命令模式(按鍵 Esc 啟動)
Shift + Enter:運行本單元,選中下個單元
Ctrl + Enter:運行本單元
Alt + Enter:運行本單元,在其下插入新單元
Y: 單元轉入代碼狀態
M: 單元轉入 markdown 狀態
A: 在上方插入新單元
B: 在下方插入新單元
DD: 刪除選中的單元
二、NumPy使用
在Python中,ndarray(ndarray的全名是NumPy的“N-dimensional array”;N維數組)是NumPy庫中一個非常重要的數據結構,用于存儲多維數組。它提供了大量的數學和邏輯函數操作,使得數組的創建、修改、索引和計算變得更加方便和高效。
1、創建ndarray
【1】使用np.array()由python list創建
注:
- numpy默認ndarray的所有元素的類型是相同的
- 如果傳進來的列表中包含不同的類型,則統一為同一類型,優先級:str>float>int
- ndarray的常見數據類型:
- int: int8、uint8、int16、int32、int64
- float: float16、float32、float64
- str: 字符串
【2】使用np.routines函數創建
1、np.ones(shape, dtype=None, order='C')
2、np.zeros(shape, dtype=float, order='C')
3、np.full(shape, fill_value, dtype=None, order='C')
4、np.eye(N, M=None, k=0, dtype=float)
5、np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
6、np.arange([start, ]stop, [step, ]dtype=None)
7、np.random.randint(low, high=None, size=None, dtype='l')
8、np,random.randn(d0, d1, ..., dn)
9、np.random.normal(loc=0.0, scale=1.0, size=None)
10、np.random.random(size=None)
11、np.random.random(d0, d1, ..., dn)
2、ndarray屬性
1、ndim:維度
2、shape:形狀
3、size:總長度
4、dtype:元素類型
3、ndarray基本操作
1、索引
根據索引修改數據
2、切片
反轉;兩個::進行切片
左右反轉
上下反轉
顏色反轉
3、變形
4、級聯
級聯基本要求:垂直級聯,列數一定要相同;水平級聯,行數一定要相同
垂直級聯:要求列數一致
水平級聯:要求行數一致
np.hstack和np.vstack
5、切分
6、副本
運行效率
4、ndarray聚合操作
1、求和np.sum
2、最大/最小值:np.max/np.min
3、其它聚合操作
- np.min 最小值
- np.max 最大值
- np.mean 平均值
- np.average 平均值
- np.median 中位數
- np.percentile 百分位數
- np.argmin 最小值對應的下標
- np.argmax 最大值對應的下標
- np.std 標準差
- np.var 方差
- np.power 次方,求冪
- np.argwhere 按條件查找
4、操作文件
使用panda打開height.csv文件獲取其中數據
5、ndarray矩陣操作
1、基本矩陣操作
【1】算術運算符:加減乘除
【2】矩陣積np.dot()
2、廣播機制
6、ndarray排序
1、快速排序