View on GitHub

我的博客

杂七杂八啥都有

Python 实验报告指引

前言:关于这次作业,负责任的神仙老学委已经在他的学委的(关于 Python 的)Q & A中写的很明白了,但是这次接触到的 Python 的所谓的交互式编程已经令人头晕了,更别说还有辣么多的函数文档要阅读了(当初按下 help(numpy) 的我追悔莫及),所以我试着写个捷径来帮助大家。

目录

  1. 安装 Python 及相关的库

{:start=”2”} 2. 我们常用的 sympy 中的函数

  1. 常用的 numpy 中的函数

1. 安装 Python 及相关的库

Q:既然学委的 Q & A 中都已经给了 WinPython,而其中的大量关于科学计算的库可以让你成为“scientist 中的 scientist”(学委原话),那么我为什么还要去搞其他呢?

A:学委给的 WinPython 固然适合无脑操作,集成了大量的科学计算库,并且还能够免去你以后走入 Python 开发这条路子后还要安装其他库的麻烦事儿;但是,这个 WinPython 安装之后可是要占 2G 的空间,对于我对这个 128G SSD 系统盘,安完 WinPython 之后 C 盘只剩下 10G 的人很不友好啊!!!!(所以你为什么不安到 D 盘去呢?)
only 10G

1. 安装 Python

  1. 官网:
    前往 Python 官网下载 Python(当然最好还是百度/谷歌搜索 Python 啦)
    python 官网

  2. 下载:
    根据你的电脑操作系统选择下载 execuatable installer (3.6.7 还是 3.7.1 你们随意,我这里拿 3.6.7 做示例)

  3. 安装:双击你下载的 installer

  1. 添加环境变量(第一次安装 Python/电脑原本没有 Python 的不用看):

    在我看来,这是最难的一步,我也不知道我为什么会在安装的时候没有默认把启动路径添加 path,所以只能手动添加了,不过如果你们在安装的时候,看到安装界面有个 add path 请务必勾选上它

2. 安装相关库

  1. 安装 sympy :
    在 cmd/powershell 输入:
python -m pip install --upgrade pip

来更新 pip (原本的 pip 太老了
否则当你输入

pip install sympy

就会出现如下提示:

输入上述 pip install 命令,开始下载和安装 sympy

  1. 安装 numpy:
    新开一个(你也可以等这个安装完) cmd/powershell ,输入命令:
pip install numpy

开始下载安装 numpy 库
pip安装numpy

安装时该窗口不要做任何操作,直到安装完成

  1. 安装 scipy (非必要):
pip install scipy

  1. 安装 matplotlib (非必要):
pip install matplotlib

2. 我们常用的 sympy 中的函数

目录

  1. 定义变量

  2. 三角函数

  3. 分数

  4. 求导

  5. 积分

  6. 极限

1. 定义 x 等变量

# 使用方法一:只加载库
>>> import sympy # 加载库,但使用必须加前缀,对命名空间无影响
>>> x = sympy.symbols('x')

>>> x
x
>>> x**3
x**3

# 使用方法二:加载库中的全部函数
>>> from sympy import * #将库中所有函数全部加载出来,使用时不需要后缀,但是会污染原命名空间的其他函数(比如说 cos() )
>>> x = symbols('x')

>>> x
x

2. 三角函数(反三角函数我没找到

# 方法一:只加载库
>>> import sympy
>>> x = sympy.symbols('x') # 定义变量

>>> sympy.sin(x) # sin()
sin(x)
>>> sympy.cos(x) # cos()
cos(x)
>>> sympy.tan(x) # tan()
tan(x)

# 方法二:加载库中的全部函数,会和 math 库中的三角函数冲突(目前已知是覆盖 math 的)
>>> from sympy import *
>>> x = symbols('x')

>>> sin(x) # sin()
sin(x)
>>> cos(x) # cos()
cos(x)
>>> tan(x) # tan()
tan(x)

3. 分数

# 方法一:只加载库
>>> import sympy
>>> x = sympy.symbols('x') # 定义变量

>>> sympy.Rational(3/2)
3/2

>>> sympy.Rational(sympy.cos(x)/2) # 报错,我暂时不知道为什么
>>> sympy.Rational(3/2) * sympy.sin(x)
3*sin(x)/2

# 方法二:加载库中的全部函数,会和 math 库中的三角函数冲突(目前已知是各司其职,即参数是数据就是 math. ,如果是 symbol 类型就变成 sympy.)
>>> from sympy import *
>>> x = symbols('x')

>>> Rational(3/2)
3/2

>>> Rational(cos(x)/2) # 报错,我暂时不知道为什么
>>> Rational(3/2) * sin(x)
3*sin(x)/2

4. 求导

# 方法一:只加载库
>>> import sympy
>>> x = sympy.symbols('x') # 定义变量

>>> sympy.diff (x) # 求导
1

>>> sympy.diff(sympy.cos(x))
-sin(x)

# 方法二:加载库中的全部函数
>>> from sympy import *
>>> x = symbols('x')

>>> diff (x) # 求导
1

>>> diff(cos(x))
-sin(x)

5. 积分

# 两种方法都可以使用,篇幅限制只使用加载库
>>> import sympy
>>> x = sympy.symbols('x') # 定义变量

# 不定积分,没有加 C:sympy.integrate(表达式)
>>> sympy.integrate (x)
x**2/2

>>> sympy.integrate(sympy.cos(x))
sin(x)

>>> sympy.integrate(x**8+sympy.sqrt(x))
2*x**(3/2)/3 + x**9/9

# 定积分:sympy.integrate(表达式,(变量,下限,上限));表达式可以用变量替代
>>> sympy.integrate (x,(x,0,2))
2

>>> expr = sympy.cox(x)
>>> expr
cos(x)
>>> sympy.integrate(expr,(x,0,1))
sin(1)

>>> expr2 = sympy.tan(x)
>>> expr2
tan(x)
>>> sympy.integrate(expr2,(x,0,1))
-log(cos(1))

6. 极限

# 两种方法都可以,篇幅限制只使用函数全部加载
# limit(表达式,变量,极限点)
>>> from sympy import *
>>> x=symbols('x') # 定义变量

>>> limt(ln(x),x,0) # 此处的 ln() 是 sympy.ln()
-oo # 即负无穷

>>> limit(tan(x),x,math.pi/2) # math.pi 需要 import math
1.63312393531954e+16

>>> limit(tan(x),x,+oo)
AccumBounds(-oo, oo)

3. 我们常用的 numpy 中的函数

同 sympy 一样,都能够加载库或者加载全部函数,为了省略篇幅,只用加载全部函数方法

目录

  1. 建立矩阵

  2. 求矩阵大小

  3. 求矩阵转置

  4. 求矩阵的逆

  5. 求矩阵相乘的积

1. 建立矩阵

>>>from numpy import * # 加载全部函数
>>> A = matrix([[1,2,3], # 其他方法我我没了解
... [5,7,8],
... [3,5,6]])
>>> A
matrix([[1, 2, 3],
        [5, 7, 8],
        [3, 5, 6]])

2. 求矩阵大小

>>> A # 用上面的 A
matrix([[1, 2, 3],
        [5, 7, 8],
        [3, 5, 6]])

# 方法一
>>> A.shape()
(3, 3)
# 方法二
>>> shape(A)
(3, 3)

3. 求矩阵的转置

>>> A # 用上面的 A
matrix([[1, 2, 3],
        [5, 7, 8],
        [3, 5, 6]])

# 方法一
>>> A.T
matrix([[1, 5, 3],
        [2, 7, 5],
        [3, 8, 6]])
# 方法二
>>> A.transpose()
matrix([[1, 5, 3],
        [2, 7, 5],
        [3, 8, 6]])
# 方法三
>>> transpose(A)
matrix([[1, 5, 3],
        [2, 7, 5],
        [3, 8, 6]])

4. 求矩阵的逆

>>> A # 用上面的 A
matrix([[1, 2, 3],
        [5, 7, 8],
        [3, 5, 6]])

# 方法一
>>> A.I
matrix([[ 1. ,  1.5, -2.5],
        [-3. , -1.5,  3.5],
        [ 2. ,  0.5, -1.5]])
# 方法二
>>> A**-1
matrix([[ 1. ,  1.5, -2.5],
        [-3. , -1.5,  3.5],
        [ 2. ,  0.5, -1.5]])

5. 求矩阵相乘的积

>>> A # 用上面的 A
matrix([[1, 2, 3],
        [5, 7, 8],
        [3, 5, 6]])

# 方法一
>>> A.dot(A) # 括号中是另一个矩阵
matrix([[ 20,  31,  37],
        [ 64,  99, 119],
        [ 46,  71,  85]])
# 方法二
>>> dot(A,A) # 括号里面是两个矩阵
matrix([[ 20,  31,  37],
        [ 64,  99, 119],
        [ 46,  71,  85]])
# 方法三
>>> A*A # 最粗暴的方法
matrix([[ 20,  31,  37],
        [ 64,  99, 119],
        [ 46,  71,  85]])
TOP