Python NumPy学习汇编

一、NumPy简介
        NumPy(Numerical Python)是 Python 中用于科学计算的核心库之一,专注于高效的数值计算。它提供了一个强大的 N 维数组对象(ndarray),支持快速的数组操作和数学函数。NumPy 是许多科学计算库(如 Pandas、SciPy、Scikit-learn 等)的基础。

二、主要特点
1、高效的数组操作
   - NumPy 的数组操作比 Python 原生列表快得多,因为它底层是用 C 语言实现的。
2、多维数组支持
   - 支持 1D、2D、3D 甚至更高维度的数组。
3、丰富的数学函数
   - 提供了大量的数学函数(如线性代数、傅里叶变换、随机数生成等)。
4、广播机制
   - 支持不同形状的数组之间的运算。
5、与其他库的集成
   - NumPy 是许多科学计算库的基础,如 Pandas、Matplotlib、TensorFlow 等。

三、安装 NumPy

pip install numpy

四、基本用法

1.创建数组:NumPy 的核心是 ndarray 对象,可以通过多种方式创建数组。

import numpy as np

# 从列表创建数组
arr1 = np.array([1, 2, 3, 4, 5])
print("一维数组:", arr1)

# 创建二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print("二维数组:\n", arr2)

# 创建全零数组
zeros = np.zeros((3, 3))
print("全零数组:\n", zeros)

# 创建全一数组
ones = np.ones((2, 4))
print("全一数组:\n", ones)

# 创建单位矩阵
identity = np.eye(3)
print("单位矩阵:\n", identity)

# 创建等差数列数组
range_arr = np.arange(0, 10, 2)  # 从 0 到 10,步长为 2
print("等差数列数组:", range_arr)

# 创建随机数组
random_arr = np.random.rand(2, 3)  # 2x3 的随机数组
print("随机数组:\n", random_arr)

2. 数组操作:NumPy 提供了丰富的数组操作功能。

# 数组形状
print("数组形状:", arr2.shape)

# 数组维度
print("数组维度:", arr2.ndim)

# 数组元素类型
print("数组元素类型:", arr2.dtype)

# 数组切片
print("切片:", arr2[0, 1:3])  # 第一行,第 2 到第 3 列

# 数组重塑
reshaped = arr2.reshape(3, 2)
print("重塑后的数组:\n", reshaped)

# 数组转置
transposed = arr2.T
print("转置后的数组:\n", transposed)

# 数组运算
arr3 = np.array([[1, 2], [3, 4]])
arr4 = np.array([[5, 6], [7, 8]])
print("数组相加:\n", arr3 + arr4)
print("数组相乘:\n", arr3 * arr4)  # 逐元素相乘
print("矩阵乘法:\n", np.dot(arr3, arr4))  # 矩阵乘法

3. 数学函数:NumPy 提供了大量的数学函数。

# 求和
print("数组求和:", np.sum(arr3))

# 平均值
print("数组平均值:", np.mean(arr3))

# 标准差
print("数组标准差:", np.std(arr3))

# 最大值和最小值
print("数组最大值:", np.max(arr3))
print("数组最小值:", np.min(arr3))

# 指数和对数
print("指数:", np.exp(arr3))
print("自然对数:", np.log(arr3))

# 三角函数
angles = np.array([0, 30, 45, 60, 90])
print("正弦值:", np.sin(np.deg2rad(angles)))

4. 广播机制:NumPy 的广播机制允许不同形状的数组进行运算。

# 标量与数组运算
arr5 = np.array([1, 2, 3])
print("标量加法:", arr5 + 5)

# 不同形状数组运算
arr6 = np.array([[1], [2], [3]])
print("广播加法:\n", arr5 + arr6)

 5. 线性代数:NumPy 提供了线性代数模块 numpy.linalg。

# 矩阵求逆
matrix = np.array([[1, 2], [3, 4]])
inv_matrix = np.linalg.inv(matrix)
print("矩阵的逆:\n", inv_matrix)

# 行列式
det = np.linalg.det(matrix)
print("矩阵的行列式:", det)

# 特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(matrix)
print("特征值:", eigenvalues)
print("特征向量:\n", eigenvectors)

        NumPy 是 Python 科学计算的基础库,提供了高效的数组操作和丰富的数学函数。无论是数据处理、机器学习还是科学计算,NumPy 都是不可或缺的工具。通过掌握 NumPy,可以更高效地处理数值计算任务!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老胖闲聊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值