模块
模块是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()# 显示图形
运行弹出窗口
统计实例
这里展示一个标准化变量的函数实例:
这里使用到的标准化公式为:
$$ \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各种模块的功能,能让我们处理数据更加游刃有余。