Numpy笔记

第一次作业

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 # 透明度
) 

 

 


版权声明:本文为qq_53416355原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。