Python 科学计算的五大库

开发
本文介绍了 Python 科学计算中常用的五大库:NumPy、Pandas、Matplotlib、SciPy 和 Scikit-learn。

Python 是一门强大的编程语言,在科学计算领域有着广泛的应用。今天我们就来聊聊 Python 科学计算中常用的五大库:NumPy、Pandas、Matplotlib、SciPy 和 Scikit-learn。

1. NumPy

NumPy 是 Python 中用于处理数值数据的基础库。它提供了高效的数组对象和各种数学函数,使得数值计算变得非常方便。

基本使用:

import numpy as np

# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])
print(arr)  # 输出: [1 2 3 4 5]

# 创建一个多维数组
multi_dim_arr = np.array([[1, 2, 3], [4, 5, 6]])
print(multi_dim_arr)
# 输出:
# [[1 2 3]
#  [4 5 6]]

# 数组的基本操作
print(arr + 1)  # 输出: [2 3 4 5 6]
print(arr * 2)  # 输出: [2 4 6 8 10]

高级用法:

# 生成随机数组
random_arr = np.random.rand(3, 3)
print(random_arr)

# 数组切片
sliced_arr = arr[1:4]
print(sliced_arr)  # 输出: [2 3 4]

# 广播机制
arr2 = np.array([1, 2, 3])
result = arr + arr2
print(result)  # 输出: [2 4 6 6 7]

2. Pandas

Pandas 是一个强大的数据处理和分析库,特别适合处理表格数据。

基本使用:

import pandas as pd

# 创建一个 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df)
# 输出:
#       Name  Age
# 0    Alice   25
# 1      Bob   30
# 2  Charlie   35

# 选择列
ages = df['Age']
print(ages)
# 输出:
# 0    25
# 1    30
# 2    35
# Name: Age, dtype: int64

高级用法:

# 读取 CSV 文件
df = pd.read_csv('data.csv')
print(df.head())  # 显示前 5 行

# 数据筛选
filtered_df = df[df['Age'] > 30]
print(filtered_df)

# 数据聚合
grouped_df = df.groupby('Name').mean()
print(grouped_df)

3. Matplotlib

Matplotlib 是一个用于绘制图表的库,可以生成各种静态、动态和交互式图表。

基本使用:

import matplotlib.pyplot as plt

# 绘制简单的折线图
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Simple Line Plot')
plt.show()

高级用法:

# 绘制多个子图
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))

ax1.plot(x, y, 'r')  # 红色折线
ax1.set_title('Subplot 1')

ax2.scatter(x, y, color='b')  # 蓝色散点图
ax2.set_title('Subplot 2')

plt.show()

4. SciPy

SciPy 是一个用于科学和工程计算的库,提供了许多高级数学函数和算法。

基本使用:

from scipy import stats

# 计算均值和标准差
data = [1, 2, 3, 4, 5]
mean = np.mean(data)
std_dev = np.std(data)
print(f'Mean: {mean}, Standard Deviation: {std_dev}')
# 输出: Mean: 3.0, Standard Deviation: 1.4142135623730951

# 概率分布
dist = stats.norm(loc=0, scale=1)
print(dist.pdf(0))  # 输出: 0.3989422804014327

高级用法:

# 最小二乘拟合
x = np.linspace(0, 10, 100)
y = 3 * x + 5 + np.random.normal(0, 1, 100)

slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)
print(f'Slope: {slope}, Intercept: {intercept}')
# 输出: Slope: 2.995805608425055, Intercept: 5.046887465309874

5. Scikit-learn

Scikit-learn 是一个用于机器学习的库,提供了大量的算法和工具。

基本使用:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# 加载 Iris 数据集
iris = load_iris()
X = iris.data
y = iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)
print(predictions)

高级用法:

# 交叉验证
from sklearn.model_selection import cross_val_score

scores = cross_val_score(model, X, y, cv=5)
print(f'Cross-validation scores: {scores}')
print(f'Mean score: {np.mean(scores)}')

实战案例:股票价格预测

假设我们要预测某只股票的未来价格。我们可以使用 Pandas 处理数据,NumPy 进行数值计算,Scikit-learn 构建预测模型。

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

# 读取股票数据
df = pd.read_csv('stock_prices.csv')
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)

# 选择特征和目标变量
X = df[['Open', 'High', 'Low', 'Volume']].values
y = df['Close'].values

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

# 可视化结果
plt.figure(figsize=(10, 5))
plt.plot(y_test, label='Actual Prices')
plt.plot(predictions, label='Predicted Prices')
plt.xlabel('Time')
plt.ylabel('Price')
plt.title('Stock Price Prediction')
plt.legend()
plt.show()

总结

本文介绍了 Python 科学计算中常用的五大库:NumPy、Pandas、Matplotlib、SciPy 和 Scikit-learn。我们从基本使用到高级用法,逐步展示了每个库的核心功能和应用场景。通过实战案例,我们进一步巩固了这些库的综合应用。

责任编辑:赵宁宁 来源: 小白PythonAI编程
相关推荐

2021-01-13 15:13:07

Python开发 工具

2022-01-18 06:53:10

量子科学量子安全量子计算

2019-10-12 10:09:41

云计算数据物联网

2018-07-11 06:52:47

云计算云迁移

2014-12-04 11:36:02

云计算云计算技术特点

2023-10-30 15:16:59

Python库Python开发

2019-01-08 16:25:42

数据科学机器学习神经网络

2011-04-21 11:39:13

2023-11-28 11:22:51

Pythonitertools库工具

2023-09-08 10:12:48

云计算云迁移

2015-03-16 11:01:52

云计算误解云计算公有云

2019-06-04 10:40:07

2016-08-04 16:36:39

云计算

2013-08-05 10:01:09

云计算

2010-03-16 16:35:06

云计算

2009-07-24 11:19:02

云计算担心

2020-11-11 14:40:28

云计算公共云人工智能

2013-04-10 17:39:52

数据库安全

2013-08-06 09:50:12

科学实验室太阳能

2011-02-17 11:18:29

PythonWebRuby
点赞
收藏

51CTO技术栈公众号