Python数值计算(1)

准备总结一下通过Python进行数值计算的环境,先说一下数值计算的基本语法和库。

1.基本运算

Python中提供基本运算符,常见的加减乘除,唯一需要注意的是除法,整数除法和浮点数除法不一样。

一般除法/,无论参与运算的数是整数还是浮点数,能不能被整除,其结果一定是浮点类型的:

print(type(4/2),type(5/2)) # <class 'float'> <class 'float'>

对于整数除法使用//(两个/),在参与运算的两个数均为整数时,结果也为整数:

print(type(4//2),type(5//2)) # <class 'int'> <class 'int'>

这个时候是类似C语言中两个整数的除法的。

不过,Python中还是会把事情弄得稍微有点复杂,what if……对浮点数使用整除呢?测试一下:

x=5.6//2
print(x,type(x)) # 2.0 <class 'float'>
y=9.5//2.4
print(y,type(y)) # 3.0 <class 'float'>

看来,在这种情况下,可以保证结果为“整数”(注意还是浮点类型)。

求模运算使用% ,对于整数和浮点数都可以使用,其效果是a%b=a-(a//b)*b,但是浮点数由于IEEE 754的表示方式,所以会出现误差:

x=5.6%2
print(x,type(x)) # 1.5999999999999996 <class 'float'>
y=9.5%2.4
print(y,type(y)) # 2.3000000000000003 <class 'float'>

幂函数使用两个乘号(**),例如2**3=8,当然了,也可以支持底和幂都是浮点数的计算,但是,**计算的结果类型,可能是整型,也可能是浮点型:

print(1.2**3.4) # 1.858729691979481
p=2**3
print(p,type(p)) #8 <class 'int'>

2.数学函数

模块math基本上可以理解为和C语言标准math.h提供相同的功能,使用该模块需要import math,其中主要包括了以下的一些常量和函数。

自然对数底数e和圆周率pi,这两个值太常见了:

import math
print(math.e) # 2.718281828459045
print(math.pi) # 3.141592653589793

幂函数和对数函数包括pow,exp和log,log10,使用方式如下:

pow(a,b)=a^{b},exp(x)=e^x, log(x)=lnx,log10(x)=lg(x)

print(math.pow(2,3)) # 8.0,注意这里是一个float类型
print(math.exp(3)) # 20.085536923187668
print(math.log(math.e)) # 1.0
print(math.log10(2)) # 0.3010299956639812

另外就是各种三角函数和反三角函数了,和C语言中使用的方式大同小异,这里就不展开细说了。

3.numpy库

NumPy是一个Python的开源的数值计算扩展,支持多种维度数组与矩阵运算,此外也针对数组运算提供很多数学函数库,可以很方便的计算矩阵的乘法、求逆运算等,具体的使用将在后面逐步介绍。官方网站为:NumPy -

4.Matplotlib绘图库

Matplotlib 是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,官方网站为:https://matplotlib.org/

仅需要几行代码,便可以生成绘图、直方图、功率谱、条形图、错误图、散点图等,例如绘制一个二次曲线的图形:

import matplotlib.pyplot as plt
import numpy as np
import mathdef f(x):return x**2-2*x-3x=np.arange(-4,4,0.01)
f_hdl=np.vectorize(f)
y=f_hdl(x)
plt.plot(x,y)
plt.grid()
plt.show()

绘制效果如下:

更多的使用方式将在后面逐步学习和介绍。

OK,以上是通过Python进行数值计算的基本语法和工具,后面在相应的使用中逐渐展开学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【嵌入式英语教程--3】C语言中的基本数据类型

C语言中的基本数据类型 英文原文 In the C programming language, basic data types form the building blocks of any program. These include int, float, char, and bool. The int type is used for integer values, float for floating-point numbers, char for single c…

相机拍摄如何正确曝光

不同场景下的曝光思路 数码时代&#xff0c;我们并不需要准确曝光&#xff0c;我们只需要用单张或者多张照片&#xff0c;记录下场景的全部亮度信息直方图可以辅助我们确认&#xff0c;是否完整记录下了场景的亮度信息正常光比环境&#xff0c;提倡“向右曝光”。大光比环境&a…

通信系统的均衡技术

1、摘要 在通信系统中&#xff0c;信号从发送端发出&#xff0c;经过信道&#xff0c;到达接收端&#xff0c;而在传输的过程中&#xff0c;信号会发生失真&#xff0c;产生失真的原因有很多&#xff0c;包括阻抗不匹配&#xff0c;干扰等。为了优化信号质量&#xff0c;需要进…

【PyTorch笔记】训练时显存一直增加到 out-of-memory?真相了!

最近用 Pytorch 训模型的过程中&#xff0c;发现总是训练几轮后&#xff0c;出现显存爆炸 out-of-memory 的问题&#xff0c;询问了 ChatGPT、查找了各种文档。。。 在此记录这次 debug 之旅&#xff0c;希望对有类似问题的小伙伴有一点点帮助。 问题描述&#xff1a; 训练过…

mysql的唯一索引和普通索引有什么区别

在MySQL中&#xff0c;唯一索引&#xff08;UNIQUE Index&#xff09;和普通索引&#xff08;普通索引&#xff0c;也称为非唯一索引&#xff09;有一些关键的区别。以下是它们的比较以及性能分析&#xff1a; 唯一索引与普通索引的区别 唯一性&#xff1a; 唯一索引&#xff…

也来聊一聊反复开关空调是否更费电

文章目录 为了制造噱头而刻意开展的毫无实际价值的实验空调制冷的基本原理空调主要耗电部件分析空调主要耗电阶段分析启动阶段&#xff1a;瞬时功率较高&#xff0c;但持续时间较短制冷运行阶段&#xff1a;压缩机持续运行&#xff0c;耗电量最大温度达到设定值后的阶段&#x…

深入探索非线性数据结构:树与图的世界

在数据结构的广阔天地中&#xff0c;非线性结构以其独特的逻辑关系和广泛的应用场景&#xff0c;成为计算机科学领域的重要组成部分。其中&#xff0c;树和图作为两种典型的非线性数据结构&#xff0c;不仅深刻影响了算法的设计与分析&#xff0c;也广泛应用于各种实际问题的解…

基于tkinter的学生信息管理系统之登录界面和主界面菜单设计

目录 一、tkinter的介绍 二、登陆界面的设计 1、登陆界面完整代码 2、部分代码讲解 3、登录的数据模型设计 4、效果展示 三、学生主界面菜单设计 1、学生主界面菜单设计完整代码 2、 部分代码讲解 3、效果展示 四、数据库的模型设计 欢迎大家进来学习和支持&#xff01…

灯具外贸公司用什么企业邮箱好

灯具外贸公司面对海外市场的推广、产品销售、客户沟通、市场信息收集等多重需求&#xff0c;选择一个合适的企业邮箱显得尤为重要。本文将介绍灯具外贸公司为什么应选择Zoho Mail企业邮箱&#xff0c;并详细探讨其优势和功能。 一、公司背景 广东省深圳市光明新区&#xff0c…

持久化存储:Mojo模型中模型保存与加载的艺术

持久化存储&#xff1a;Mojo模型中模型保存与加载的艺术 在机器学习项目中&#xff0c;模型的持久化存储是一个关键环节&#xff0c;它允许我们将训练好的模型保存下来&#xff0c;并在需要时重新加载使用。Mojo模型&#xff0c;作为一个虚构的高级机器学习框架&#xff0c;支…

Redis 安装和数据类型

Redis 安装和数据类型 一、Redis 1、Redis概念 redis 缓存中间件&#xff1a;缓存数据库 nginx web服务 php 转发动态请求 tomcat web页面&#xff0c;也可以转发动态请求 springboot 自带tomcat 数据库不支持高并发&#xff0c;一旦访问量激增&#xff0c;数据库很快就…

vTESTstudio中如何添加DLL文件?

文章目录 一、CANoe添加DLL二、vTESTstudio中添加DLL1.手动添加2.代码添加 一、CANoe添加DLL 在CANoe中添加DLL的路径如下图&#xff0c;在Simulation Setup中选择需要添加的节点&#xff0c;右键选择Configuration进行添加DLL。 二、vTESTstudio中添加DLL 1.手动添加 在打…

java中 VO DTO BO PO DAO

VO、DTO、BO、PO、DO、POJO 数据模型的理解和实际使用_vo dto bo-CSDN博客 深入理解Java Web开发中的PO、VO、DTO、DAO和BO概念_java dto dao-CSDN博客

【计算机网络】WireShark和简单http抓包实验

一&#xff1a;实验目的 1&#xff1a;熟悉WireShark的安装流程和界面操作流程。 2&#xff1a;学会简单http的抓取和过滤&#xff0c;并分析导出结果。 二&#xff1a;实验仪器设备及软件 硬件&#xff1a; Windows 2019操作系统的计算机等。 软件&#xff1a;WireShark、…

【算法/训练】:动态规划(线性DP)

一、路径类 1. 字母收集 思路&#xff1a; 1、预处理 对输入的字符矩阵我们按照要求将其转换为数字分数&#xff0c;由于只能往下和往右走&#xff0c;因此走到&#xff08;i&#xff0c;j&#xff09;的位置要就是从&#xff08;i - 1&#xff0c; j&#xff09;往下走&#…

vector清空

https://www.zhihu.com/question/592055868/answer/2967078686

java使用hutool工具检查远程端口是否开启

使用java校验ip地址或域名的端口是否开启 1.导入hutool工具的maven依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency>2.复制一下代码案例直接运行 …

前端面试基础题(微信公众号:前端面试成长之路)

BFC、IFC、GFC、FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 到底什么是BFC、IFC、GFC和FFC Whats FC&#xff1f; 一定不是KFC&#xff0c;FC的全称是&#xff1a;Formatting Contexts&#xff0c;是W3C CSS2.1规范中的一个概念。它是页面中的一块渲染区域&#xff0c;并…

量度卓越:Mojo模型中自定义评估与模型比较的艺术

量度卓越&#xff1a;Mojo模型中自定义评估与模型比较的艺术 在机器学习项目中&#xff0c;模型评估是衡量算法性能的关键步骤。Mojo模型&#xff0c;作为一个先进的机器学习框架&#xff0c;提供了丰富的工具来支持模型评估和比较。本文将深入探讨如何在Mojo模型中实现自定义…

openj9-17.0.2_8-jre-alpine 和 openjdk:17-alpine 的区别是什么?

openj9-17.0.2_8-jre-alpine 和 openjdk:17-alpine 都是用于运行 Java 应用程序的 Docker 镜像&#xff0c;但它们之间有一些关键的区别&#xff1a; JVM Implementation: openj9-17.0.2_8-jre-alpine 使用的是 Eclipse OpenJ9&#xff0c;这是一种高效、低内存消耗的 JVM 实现…