第一次作业
Numpy——python的科学计算数据库,特有的数据类型ndarray(数组对象)在减少for循环代码编写量的同时,还提高了代码的运行效率。
python的一维数据类型——集合(无序),列表(有序),二者的元素要为同种数据类型。
numpy数组中的数据类型可以不同,称为非同质数组,但无法利用数组的便捷性,应尽量避免
import numpy as np
''' 数组的属性查看 '''
#
np.ndim
''' 数组的创建 '''
## 使用列表或元组创建
np.array([[1, 2], [3, 4], (5, 6)])
## 使用方法创建
# 生成指定维度的全1数组
np.ones(shape)
# 生成指定维度的全0数组
np.zeros(shape)
# 生成指定维度的全为单一指定值的数组
np.full(shape, val)
# 生成n*n的单位矩阵
np.eye(n)
# 根据数组a的形状生成全1数组
np.ones_like(a)
# 依据数组a的形状生成全0数组
np.zeros_like(a)
# 依据数组a的形状生成全为单一指定值的数组
np.full_like(a, val)
''' 数组的维度变换 '''
# 返回重新指定shape的数组,原数组不变
.reshape(shape)
# 同.reshape(),但改变原数组
.resize(shape)
''' 数据类型转化 '''
# 将数组转化为列表
.tolist()
# 转换为其他数据类型,原数组不变
.astype(new_type)
第二次作业
csv(Comma-Separated Value)是一种文件格式,常以逗号作为分隔符,使用换行来表示一行数据。
''' 文件读取 '''
## 一维数据存取(csv文件存读)
np.savetxt(
frame # 保存数组的文件格式
array # 存入文件的数组
fmt # 写入文件的数据格式
delimiter # 设置分隔符,默认为空格
)
np.loadtxt(
frame # 读取的文件路径
dtype # 指定读入的数据格式
delimiter # 设置分隔符
skiprows # 跳过的行数
usecols # 使用的列数
unpack # 是否解耦赋值给多个变量,默认为False,可选
)
## 二维数据存取
#该方法虽然可以存储多维数组,但存入是按一维数组存储,因此读取数据时,还需要使用reshape还原原数组的shape
.tofile(
frame # 保存文件的格式
sep # 分隔符
format # 存入文件的格式
)
.fromfile(
frame
dtype
count # 读入元素的个数,-1表示全部读入
sep
)
# 该方式将数组的元数据一并存入了文件,.save的文件格式为.npy;.savez的文件格式为npz,减少了.reshape的操作
np.save(frame, array)/np.savez(frame, array)
np.load(frame)
随机数函数
?第三次作业
matplotlib——python的数据可视化第三方库
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
# 导入设置绘制区域的类
import matplotlib.gridspec as gridspec
'''
设置中文,由于matplotlib并不支持中文,不设置会出现乱码
第一种设置方法,会对全局的字符生效,不推荐使用
matplotlib.rcParams['font.family'] = 'SimHei'
matplotlib.rcParams['font.style'] = 'normal/italic'
matplotlib.rcParams['font.size'] = ''
第二种方法,在属性中进行设置
plt.title("线图", fontproperties = 'SimHei', fontsize =20)
'''
'''
在图形中加入箭头
plt.annotate(
s = "箭头", # 箭头旁的文本内容
xy=(1,1),# 箭头的指向位置
xytext = (1,1), #文本的位置
arrowprops = {facecolor = 'black', width = 1} #使用字典对箭头的属性进行说明)
'''
'''
绘图区域的设定
# 第一种方式,使用subplot方法
plt.subplot(2, 1, 1)
plt.subplot(212)
# 第二种方式,使用subplot2grid方法
plt.subplot2grid(GridSpec, CurSpec, colspan, rowspan)
例子:plt.subplot2grid((3,3), (0,0), colspan = 3)
# 第三种方式,使用gridspec类
gs = gridspec.GridSpec(2,3)
ax1 = plt.subplot(gs[0,:])
'''
#plt.plot([1,2,3])
#plt.plot(x, y, format_string, **kwargs)
ax1.plot([1,2,3,4,5], [0,1,2,3,4])
plt.ylabel("y")
plt.xlabel("x")
plt.title("线图", fontproperties = 'SimHei', fontsize =20)
plt.text(5, 4, "text", fontsize = 15)
plt.axis([1,10, 0, 6])
plt.grid(True)
plt.savefig()
plt.show()
绘制饼状图
# 绘制饼状图
ax2 = plt.subplot(gs[1,0]) # 设置绘图区域
ax2.pie(
[25,25,25,25], # 各块扇形在整圆中所占的比例
explode = (0,0.2, 0, 0), # 每块扇形突出的程度
labels = ['blue', 'brown', 'green', 'red'], # 各标签的名称
shadow = True # 是否设置阴影
)
绘制散点图
# 绘制散点图
ax4 = plt.subplot(gs[1,2]) # 设置绘图区域
ax4.plot(
100*np.random.randn(100), # 各点的横轴值
10*np.random.randn(100), # 各点的纵轴值
'x' # 标记的形状
)
?
绘制直方图
# 绘制直方图
ax3 = plt.subplot(gs[1,1]) # 设置绘图区域
np.random.seed(0)# 设置随机数种子
a = np.random.normal(100, 20, size = 50) # 设置正态分布数组,第一参数为均值,第二个参数为标准差,第三个参数为数组的shape
ax3.hist(
a, # 数组数据
30, # 图中所显示的直方个数,若该值小于数组元素个数,则会先将数组按该值等分后再选取
facecolor = 'green', # 直方图颜色
alpha = 1 # 透明度
)
?
?
|