5.2Python数据处理篇之Sympy系列(二)---Sympy的基本操作

摘要:
今天讲的是第一讲,sympy的操作。对应于官网的:BasicOperationsBasicOperations:https://docs.sympy.org/latest/tutorial/basic_operations.html(一)符号的初始化与输出设置-symbol()symbols()latex()1.作用:在sympy里进行符号运算之前,必须先定义sympy的符号,这样sympy才能识别该符号。

目录

目录

前言

符号化运算也是数值运算中的一个主要的领域,今天我们来学习以下,python里强大的符号运算库---sympy。今天讲的是第一讲,sympy的操作。

对应于官网的:Basic Operations

Basic Operation s:

https://docs.sympy.org/latest/tutorial/basic_operations.html

(一)符号的初始化与输出设置-symbol() symbols() latex()

1.作用:

在sympy里进行符号运算之前,必须先定义sympy的符号,这样sympy才能识别该符号。

.init_printing(use_latex=True)开启时,在jupyter运行时,输出的是LaTeX的格式

使用:latex()函数,同样返回LaTeX的格式。

2.操作:

(1)说明:

符号的初始化分为两种形式:

  1. 单个符号的初始化:x = sympy.Symbol('x')

  2. 多个符号的初始化:x,y=sympy.symbol("x y")

(2)源代码:

import sympy as sy

# 符号化变量
x = sy.Symbol('x')
y, z = sy.symbols('y z')

# 输出设置
sy.init_printing(use_latex=True)

# 输出结果
print("x:", type(x))
print("y:", type(y))
print(x**2+y+z)
print(sy.latex(x**2+y+z))

(3)输出效果

5.2Python数据处理篇之Sympy系列(二)---Sympy的基本操作第1张

(二)替换符号-subs(old,new)

1.说明:

sub是Substitution的简称,也就是替换,其有两个作用:

语法是:expr.sub(old,new)

  1. 数值替换,用数值替换符号,进行带入计算。

  2. 符号替换,用一些符号替换符号。

2.源代码:

from sympy import *

# 符号化变量
x, y, z = symbols('x y z')

expr = x**2+1

# 数值替换
result = expr.subs(x, 2)
print("原式:", expr)
print("数值计算的结果:", result)

# 符号替换
new_expr = expr.subs(x, y+z)
print("符号替换的结果:", new_expr)

3.输出效果:

5.2Python数据处理篇之Sympy系列(二)---Sympy的基本操作第2张

4.注意点:

(1)是否改变原表达式

subs()函数不改变原表达式,并且返回一个修改的表达式。

(2)替换多个表达式

当需要替换多个表达式时,可以在subs()里使用列表

如:subs([(x,2), (y, 3), (z, 4)])

表示:将x替换成2,y替换成3,z替换成4

(三)将字符串变为sympy的表达式-sympify()

1.说明:

不要混淆了sympify()函数与 simplify()函数,前者是转化,后者是简化。

2.源代码:

from sympy import *

string = "x**2+2*y + z/2"

# 转化
expr = sympify(string)

print("类型:", type(expr))
print("表达式:", expr)

3.输出效果:

5.2Python数据处理篇之Sympy系列(二)---Sympy的基本操作第3张

(四)数值计算-evalf()

1.说明:

相当于python自带的eval()函数,只是进行的是float浮点数运算。

2.操作:

(1)对于数值表达式的运算

直接使用.evalf()函数

from sympy import *

expr = sqrt(8)

# 进行计算
result = expr.evalf()

print(result)

5.2Python数据处理篇之Sympy系列(二)---Sympy的基本操作第4张

(2)对于符号表达式的运算

对于表达式常用的是:

.evalf(subs={x: 2.4})

from sympy import *

# 符号化
x = Symbol('x')

# 进行计算
expr = x**2+3
result = expr.evalf(subs={x: 2})

print(result)

5.2Python数据处理篇之Sympy系列(二)---Sympy的基本操作第5张

(五)自定义表达式-lambdify()

1.说明:

该函数有点类似于lambda(),用于自己构造一个函数表达

2.源代码:

from sympy import *
import numpy as np

x = Symbol('x')

a = np.arange(10)

expr = x**2

# 构造自己的函数
f = lambdify(x, expr, "numpy")

print(f(a))

3.输出效果:

5.2Python数据处理篇之Sympy系列(二)---Sympy的基本操作第6张

作者:Mark

日期:2019/03/15 周五

免责声明:文章转载自《5.2Python数据处理篇之Sympy系列(二)---Sympy的基本操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇show()与showDialog()的区别进度条与时间轴绑定显示图片下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

七、大数据Hadoop的安装与配置、HDFS

1.安装Hadoop 单机模式安装Hadoop 安装JAVA环境 设置环境变量,启动运行   1.1 环境准备   1)配置主机名为nn01,ip为192.168.1.21,配置yum源(系统源) 备注:由于在之前的案例中这些都已经做过,这里不再重复.   2)安装java环境 nn01 ~]# yum -y install java-1.8.0-open...

OFDM通信系统的MATLAB仿真(2)

关于OFDM系统的MATLAB仿真实现的第二篇随笔,在第一篇中,我们讨论的是信号经过AWGN信道的情况,只用添加固定噪声功率的高斯白噪声就好了。但在实际无线信道中,信道干扰常常是加性噪声、多径衰落的结合。今天我们准备再进一步,让信号经过多径瑞利衰落信道。在这种信道条件下,信号具体是怎么怎么变化的呢?下面将讲解系统仿真的各个部分以及实现多径衰落的方法。 注意...

spark安装配置

准备:1. 规划3个集群节点:hosts主机都已经配置好映射,映射主机名分别为master,slave1,slave2,且已经进行ssh免密配置,确保端口互通,防火墙关闭 2. 先安装好scala(参考:https://www.cnblogs.com/sea520/p/13518158.html) 一. 下载spark安装包下载地址:https://ar...

Spark python集成

Spark python集成 1、介绍 Spark支持python语言,对于大量的SQL类型的操作,不需要编译,可以直接提交python文件给spark来运行,因此非常简单方便,但是性能要比scala或java慢。对于常规任务,可以使用python来编写,特殊任务还是建议scala编写。 2、使用pyspark启动spark shell(centos) 2...

Java动手实验及课后程序

课后作业 一、编写程序,消息框显示计算结果 设计思想:导入Scanner包,使用JOptionPane类来实现消息框的输入和结果的显示。 程序代码: package com; import java.util.Scanner; //导入Scanner包 import javax.swing.JOptionPane; public class Manner ...

Ubuntu 安装 Hadoop(伪分布模式)

在Ubuntu14.04下安装Hadoop2.4.0 (单机模式)基础上配置一、配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml 包含了hadoop启动时的配置信息。 编辑器中打开此文件 sudo gedit /usr/local/hadoop/etc/hadoop/core-site....