Lilidream

841 分类: 日常

Python数据处理基础六:模块与实例

模块

模块是Python之所以被广泛使用的主要原因,通过各种各样的模块,Python可以适应于各式各样的情景,完成各种各样的任务。

一个模块可以理解为是许多功能函数的集合。例如Python自带的Math模块里面,就有许多用于计算的函数,而Matplotlib模块里面的功能则可以用来绘制图表。

模块引入与使用

要引入模块,可使用import [模块名]命令。
引入模块的语句放在脚本的顶部。

例如引入math模块并使用:

import math

e = math.e
print(e,math.log(e**3))

要使用模块里面的方法(功能),使用.来连接模块名和方法。
例如math.e就是一个返回 $e$ 值的方法。
math.log(x,a)是求以a为底的对数,若不传入a则以 $e$ 为底,print()中第二个表达式计算的是 $$log_e e^3$$
返回

2.718281828459045 3.0

若模块名太长,还可以用as方法来简写:

import numpy as np

使用时只需要写np.方法即可。


若只需要引入大型模块的一部分内容,可以使用from:

from matplotlib import pyplot

这样就只是引入了pyplot这个部分。


下面举一个使用matplotlib模块绘制sin曲线的例子:

import numpy as np
import math
from matplotlib import pyplot as plt

# 创建数据
x = np.arange(0,2*math.pi,0.1)# 生成0~2π,间隔为0.1的数组
y = np.sin(x)# 计算x数组对应的sin的值

# 画图
plt.figure()# 创建一个画布
plt.plot(x,y)# 绘制曲线
plt.show()# 显示图形

运行弹出窗口QQ截图20200329211838.png

统计实例

这里展示一个标准化变量的函数实例:

这里使用到的标准化公式为:

$$ \begin{equation}\large x_{zt}=\frac{x_t-\bar{x}}{S_x} \end{equation} $$

$$ \begin{equation}\large S_x = \sqrt{\frac{1}{n-1}\sum_{i=1}^n (x_i-\bar{x})^2} \end{equation} $$

def standardized(array):
    import math
    
    # 计算均值
    avg = 0
    for i in array:
        avg += i
    avg /= len(array)
    
    # 计算出距平数组
    ano = []
    for i in array:
        ano.append(i-avg)# 使用append方法向ano变量添加元素
    
    # 计算标准差
    std = 0
    for i in range(len(array)):
        std += (array[i] - avg) ** 2
    std /= (len(array) - 1)
    std = math.sqrt(std)# 使用了math的sqrt函数开根号
    
    # 计算标准化变量数组
    x = []
    for i in array:
        x.append((i - avg) / std)
    
    # 返回结果
    return x

这样一个标准化变量处理的函数就完成了,只需要输入一组数据就能完成标准化变量的处理。在之后的计算就可以直接使用。
这里还有一种更加简便的函数写法,并且可以四舍五入:

def standardized_2(array, r=None):
    import math
    avg = sum(array) / len(array)
    ano = [i - avg for i in array]
    std = math.sqrt(sum([i ** 2 for i in ano]) / (len(array) - 1))
    if r:
        return [round(i / std, r) for i in ano]
    else:
        return [i / std for i in ano]

这里用到了for循环的简写方法:[i的表达式 for i in 数组],返回 i的表达式 的数组。

输入数据测试一下:

t = [0.9, 1.2, 2.2, 2.4, -0.5, 2.5, -1.1, 0.0, 6.2, 2.7]
print(standardized(t))
print(standardized_2(t, r=3))

返回

[-0.3599884805529304, -0.21599308833175826, 0.2639915524054825, 0.3599884805529305, -1.0319669775850673, 0.4079869446266546, -1.3199577620274119, -0.791974657216447, 2.1839301153544453, 0.5039838727741028]
[-0.36, -0.216, 0.264, 0.36, -1.032, 0.408, -1.32, -0.792, 2.184, 0.504]

最后

Python还有诸多功能在此没有介绍,例如类、命名空间等,读者可以自行搜索学习。另外安装Python库的方法可以用pip,也可以安装像Anaconda这样的版本,充分利用Python各种模块的功能,能让我们处理数据更加游刃有余。

#none

作者: Lilidream

版权: 除特别声明,均采用BY-NC-SA 4.0许可协议,转载请表明出处

目录Content

评论