跳转至

Numpy&matplotlib&pandas

numpy&matplotlib&pandas

mark:
conda info --env 查看当前的环境
conda activate tensorFlow 进入环境
jupyter notebook 进入 jupyter notebook
conda deactivate 退出环境

一些常见的名词的范围是:
人工智能(AI) > 机器学习 > 深度学习

numpy

numpy 是一个 python 的库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
关于数据类型,他可以自定义,比如:

import numpy as np
student = np.dtype([('name','S20'),('age','i1'),('marks','f4')])
student1 = np.array([('yichen',21,100),('writeup',20,98)],dtype=student)
print(student1)

这样会按照 student 这个结构化数据类型应用到 student1 这里
image.png

创建一个两行四列的数组,并且用 1 来填充,如果向用 0 的话就是 zeros,默认数据类型是浮点数,可以后面加上 dtype=int 设置为整形

import numpy as np
np.ones(shape=(2, 4), dtype=int)

image.png

广播是 numpy 对不同形状的数组进行数值计算的方式,比如加法广播,直接在原来 [[1 1 11] [1 1 1 1]] 的基础上加上 [1 2 3 4]

image.png
image.png

reshape,在不改变数据的情况下改变形状

#产生一个3位数组,(2,3,4),2个平面,每个平面都是3行4列
a = np.arange(24).reshape(2, 3, 4)
print(a)

image.png

可以用 random 来产生随机浮点数

 np.random.random(size=(3,4))

image.png

一些取值的方法

import numpy as np
a = np.arange(12).reshape(3, 4)
print(a)
print(a[1:3, :])#取第1、2行的所有列
print(a[:, 1])#取每一行的第一列

image.png

将类型转换为浮点型

import numpy as np
a = np.arange(12).reshape(3, 4)
print(a)
print(a.astype(float))

image.png

转为布尔型,然后就可以用它来取值了

import numpy as np
a = np.arange(9).reshape(3, 3)
print(a)
mask = np.array([[0,1,0], [1,1,1], [0,1,0]], dtype = bool)
print(mask)
zero = np.zeros(shape=(3,3), dtype=int)
print(zero)
zero[mask]=a[mask]
print(zero)

image.png

用来求最大值

import numpy as np 
a = np.random.random(size=(4,4))
print(a)
max = np.max(a)      #找到最大值
print(max)
index = np.argmax(a)    #找到最大值所对应的索引号
print(index)
max_row = np.max(a, axis = 1)    #求解每一行的最大值
print(max_row)
max_col = np.max(a, axis = 0)   #求解每一列的最大值
print(max_col)

image.png

matplotlib

Matplotlib 是 Python 的绘图库

import numpy as np
import matplotlib.pyplot as plt
y = np.random.random(5)
print(y)
plt.plot(y)#只有一个的话x轴默认1、2、3、4...
plt.show()

image.png

import numpy as np
import matplotlib.pyplot as plt
y1 = np.random.random(10)
y2 = np.random.random(10)
x1 = range(10)
plt.plot(x1, y1)
plt.plot(x1, y2)
plt.show()

image.png

后面加上 linewidth = 3 可以加粗

image.png

'ro-' 可以改颜色以及线条的类型

image.png

把图分成好多个而不是在一个中
subplot,三个参数分别是子图的行数、子图的列数、当前子图的 id
1 2
3 4
image.png

在后面加上 label='log(2x+1)' 设置显示标签
plt.legend(loc='upper left') 设置标签显示的位置

image.png

展示网格线与标题

import numpy as np
import matplotlib.pyplot as plt
plt.xticks(np.arange(10))#设置网格线数量
plt.grid(True)#展示网格线
y1 = np.random.random(10)
x1 = range(10)
plt.plot(x1, y1)
plt.title('random')#标题
plt.show()

image.png

pandas

使用 pandas 可以读取表格文件

import pandas as pd
col_names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV']
#read_csv()  arg1:要读取的文件路径及名称  arg2:列名称  arg3:列之间的间隔  arg4:添加的列信息
data = pd.read_csv('data.csv', header=None, sep=r'\s+', names = col_names)
data

image.png

data.head() 默认查看前五行,可以在里面加上个数 data.head(10) 查看前十行
data.tail() 一样,从后面开始数
data.describe() 可以获得一些统计信息

image.png

data.info() 可以获得表格的信息

配合 绘制折线图

image.png

直方图

image.png

累计直方图

image.png

散点图

image.png

原文: https://www.yuque.com/hxfqg9/ai/ocugf8