首页 > 编程语言 >python科学计算:NumPy 数组的高级操作

python科学计算:NumPy 数组的高级操作

时间:2024-09-07 20:25:16浏览次数:13  
标签:函数 val python 科学计算 print np 计算 vals NumPy

1 基本数学函数

NumPy 提供了大量的数学函数来执行各种基本运算。这些函数可以作用于数组的每个元素,且支持广播机制。

1.1 三角函数

NumPy 提供了一组常见的三角函数,包括 sin()cos()tan() 及其反函数。

import numpy as np

# 创建一个数组
angles = np.array([0, np.pi/2, np.pi, 3*np.pi/2])

# 计算正弦值
sin_vals = np.sin(angles)
print("正弦值:", sin_vals)

# 计算余弦值
cos_vals = np.cos(angles)
print("余弦值:", cos_vals)

# 计算反正弦值
arcsin_vals = np.arcsin(np.sin(np.pi/6))
print("反正弦值:", arcsin_vals)
1.2 指数和对数函数

NumPy 提供了指数函数 exp() 和对数函数 log(),这些函数对于计算增长率、衰减和缩放非常有用。

# 计算指数
exp_vals = np.exp([1, 2, 3])
print("指数值:", exp_vals)

# 计算自然对数
log_vals = np.log([1, np.e, np.e**2])
print("自然对数:", log_vals)

# 计算以 10 为底的对数
log10_vals = np.log10([1, 10, 100])
print("以 10 为底的对数:", log10_vals)
1.3 幂运算和平方根

NumPy 提供了 power()sqrt() 函数来处理幂运算和求平方根。

# 幂运算
pow_vals = np.power([2, 3, 4], 3)
print("幂运算结果:", pow_vals)

# 计算平方根
sqrt_vals = np.sqrt([4, 9, 16])
print("平方根结果:", sqrt_vals)

2 数组的统计分析

统计分析是数据科学的重要部分,NumPy 提供了多种用于数组统计的函数,包括计算均值、中位数、方差、标准差等。

2.1 均值、中位数和众数
  • 均值: 使用 mean() 函数计算数组的算术平均值。
  • 中位数: 使用 median() 函数计算数组的中间值。
# 创建一个数组
data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# 计算均值
mean_val = np.mean(data)
print("均值:", mean_val)

# 计算中位数
median_val = np.median(data)
print("中位数:", median_val)

众数 并非 NumPy 内置函数,而需要使用 scipy.stats.mode() 来计算。

2.2 方差和标准差
  • 方差: 使用 var() 函数计算数据的方差,反映数据的波动性。
  • 标准差: 使用 std() 函数计算数据的标准差。
# 计算方差
var_val = np.var(data)
print("方差:", var_val)

# 计算标准差
std_val = np.std(data)
print("标准差:", std_val)
2.3 最大值、最小值、极差
  • 最大值: 使用 max() 函数获取数组中的最大值。
  • 最小值: 使用 min() 函数获取数组中的最小值。
  • 极差: 极差是最大值与最小值之间的差值。
# 计算最大值
max_val = np.max(data)
print("最大值:", max_val)

# 计算最小值
min_val = np.min(data)
print("最小值:", min_val)

# 计算极差
range_val = np.ptp(data)
print("极差:", range_val)
2.4 累积和与累积积
  • 累积和: 使用 cumsum() 函数计算数组的累积和。
  • 累积积: 使用 cumprod() 函数计算数组的累积积。
# 计算累积和
cumsum_vals = np.cumsum(data)
print("累积和:", cumsum_vals)

# 计算累积积
cumprod_vals = np.cumprod(data)
print("累积积:", cumprod_vals)

3 随机数生成

在数据模拟、蒙特卡罗模拟等领域,随机数的生成非常重要。NumPy 提供了强大的随机数生成模块 numpy.random,用于生成各种类型的随机数。

3.1 生成随机整数

randint() 函数可以生成指定范围内的随机整数。

# 生成 0 到 10 之间的随机整数
rand_ints = np.random.randint(0, 10, size=5)
print("随机整数:", rand_ints)
3.2 生成随机浮点数

rand()randn() 函数可以生成 0 到 1 之间的随机浮点数或标准正态分布的随机数。

# 生成 0 到 1 之间的随机浮点数
rand_floats = np.random.rand(3, 3)
print("随机浮点数:\n", rand_floats)

# 生成标准正态分布的随机数
rand_norm = np.random.randn(3, 3)
print("正态分布随机数:\n", rand_norm)
3.3 固定随机数种子

为了保证随机数生成的可重复性,可以使用 seed() 函数来固定随机数种子。

# 固定随机数种子
np.random.seed(42)
fixed_rand_ints = np.random.randint(0, 10, size=5)
print("固定种子的随机整数:", fixed_rand_ints)
3.4 洗牌与抽样
  • 洗牌: 使用 shuffle() 函数对数组元素进行随机排列。
  • 抽样: 使用 choice() 函数从数组中随机抽样。
# 创建一个数组
arr = np.arange(10)

# 洗牌
np.random.shuffle(arr)
print("洗牌后的数组:", arr)

# 随机抽样
sample = np.random.choice(arr, size=5, replace=False)
print("随机抽样:", sample)

4 线性代数

NumPy 的 linalg 模块提供了常见的线性代数运算,包括矩阵乘法、矩阵的逆、行列式、特征值和特征向量等。

4.1 矩阵乘法

dot() 函数可以用于矩阵乘法运算,支持二维矩阵之间的乘法以及向量与矩阵之间的乘法。

# 创建两个矩阵
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])

# 进行矩阵乘法
dot_product = np.dot(matrix1, matrix2)
print("矩阵乘法结果:\n", dot_product)
4.2 计算矩阵的逆

inv() 函数用于计算矩阵的逆,要求矩阵是方阵。

from numpy.linalg import inv

# 计算矩阵的逆
matrix_inv = inv(matrix1)
print("矩阵的逆:\n", matrix_inv)
4.3 计算行列式

det() 函数用于计算矩阵的行列式。

from numpy.linalg import det

# 计算行列式
matrix_det = det(matrix1)
print("矩阵的行列式:", matrix_det)
4.4 特征值与特征向量

eig() 函数用于计算矩阵的特征值和特征向量。

from numpy.linalg import eig

# 计算特征值与特征向量
eigenvalues, eigenvectors = eig(matrix1)
print("特征值:", eigenvalues)
print("特征向量:\

n", eigenvectors)

标签:函数,val,python,科学计算,print,np,计算,vals,NumPy
From: https://blog.csdn.net/imdeity/article/details/141942062

相关文章

  • 基于python+flask框架的基于Web的智能导诊系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着医疗需求的日益增长和医疗资源的有限性,患者在就医过程中常面临挂号难、找对科室难、等待时间长等问题。传统医疗导诊模式已难以满足患......
  • python科学计算:NumPy 线性代数与矩阵操作
    1NumPy中的矩阵与数组在NumPy中,矩阵实际上是一种特殊的二维数组,因此几乎所有数组的操作都可以应用到矩阵上。不过,矩阵运算与一般的数组运算存在一定的区别,尤其是在点积、乘法等操作中。1.1创建矩阵矩阵可以通过NumPy的array()函数创建。矩阵的形状可以通过shap......
  • Python File(文件) 方法
    open()方法Pythonopen()方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出OSError。注意:使用open()方法一定要保证关闭文件对象,即调用close()方法。open()函数常用形式是接收两个参数:文件名(file)和模式(mod......
  • Python 异常处理
    python标准异常什么是异常?异常处理实例实例使用except而不带任何异常类型使用except而带多种异常类型try-finally语句异常的参数实例触发异常实例用户自定义异常python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来......
  • Python在报表自动化的优势及实现流程
    Python在报表自动化的优势及实现流程 更新时间:2023年12月28日10:08:08 作者:涛哥聊Python  本文利用Python实现报表自动化,通过介绍环境设置、数据收集和准备、报表生成以及自动化流程,展示Python的灵活性和丰富的生态系统在报表自动化中的卓越表现,从设置虚拟环境到使......
  • 别让代码愁白头发!15 个 Python 函数拯救你的开发生活
    在Python世界里,有一些宝藏函数和模块,它们可以让你编程更轻松、代码更高效。这篇文章将带你一一认识这些神器,让你的开发生活瞬间轻松不少!1.all-检查所有元素是否满足条件功能介绍all函数用于检查可迭代对象中的所有元素是否都满足给定的条件。如果可迭代对象为空,则返回Tr......
  • Python毕业设计基于Django的图书借阅系统的设计与实现(源码+LW+部署讲解)
    文末获取资源,收藏关注不迷路文章目录一、项目介绍二、主要使用技术三、研究内容四、核心代码五、文章目录一、项目介绍本“期待相遇”图书借阅系统是为了提高用户查阅信息的效率和管理人员管理信息的工作效率,可以快速存储大量数据,还有信息检索功能,这大大的满足了......
  • 计算机毕业设计选题推荐-班级管理系统-教务管理系统-Java/Python项目实战
    ✨作者主页:IT研究室✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......
  • 计算机毕业设计选题推荐-域名管理系统-域名商城-域名竞拍系统-Java/Python项目实战
    ✨作者主页:IT研究室✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......
  • 计算机毕业设计选题推荐-消防站管理系统-社区消防管理系统-Java/Python项目实战
    ✨作者主页:IT毕设梦工厂✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......