一、matplotlib的学习
1.绘制折线图
from matplotlib import pyplot as plt
x = range(2,26,2)
y = [15,13,12,15,16,3,24,6,24,12,45,32]
# 设置图片的大小
plt.figure(figsize = (20,8),dpi=80)
# 设置坐标
plt.xticks(range(1,26),["10点{}".format(i) for i in range(25)],rotation=315,font = "SimHei")
plt.plot(x,y,label="牛逼",color = "orange",linestyle =":",linewidth = 5)
# 调整x轴的刻度plt.xticks(变量,刻度名,旋转角度rotation=,显示中文字体font)
# 设置描述信息
plt.xlabel("时间",font = "SimHei")
plt.ylabel("温度",font = "SimHei")
plt.title("matplotlib",font = "SimHei")
# 绘制网格
plt.grid(alpha = 0.4)#显示清晰度
# 添加图例,图例显示中文不是font,而是prop
plt.legend(prop = "SimHei",loc = "upper left")
# 保存图片
# plt.savefig("./t1.png")
plt.show()
2.绘制散点图(scatter)
from matplotlib import pyplot as plt
import numpy as np
T = np.random.randint(15,23,30)
x = range(30)
T1 = np.random.randint(22,30,31)
x_ = range(50,81)
plt.figure(figsize=(20,8),dpi=80)
plt.scatter(x,T)
plt.scatter(x_,T1)
plt.show()
3.绘制条形图(bar/barh)
from matplotlib import pyplot as plt
a = ["哈哈哈","嘿嘿嘿","呵呵呵"]
b = [23,12,34]
# 横着的话就是barh
plt.bar(range(len(a)),b,width=0.3,color = "cyan")
plt.xticks(range(len(a)),a,font = "SimHei")
plt.show()
4.绘制直方图(hist)
from matplotlib import pyplot as plt
import numpy as np
a = np.random.randint(80,120,40)
plt.hist(a,20)
plt.show()
二、numpy
1.随机数的生成
2.nan的注意点
1.俩个nan是不相等的 ,属于float
2.可以利用np.count_nonzero(t1!=t1)找出nan np.isnan()
3.和任何值计算都是nan
3.基础操作
#加载数据 np.loadtxt(filename,dtype,分割号delimiter=,跳过前几行skiprows=,usecols=,是否转置unpack=)
#矩阵的转置:a.T 或者是 np.transpose() a.swapaxes(0,1)交换0,1轴
m = np.array([[1,2],[3,4]])
n = m.ndim#后面无需括号,判断维数
print("shape:",m.shape)
#可以更改矩阵的格式
a = np.array([1,2],dtype=np.int)#float
# 取小数
a = np.round(a,2)
#在数组之中取多行 a[[1,5,7]]俩个中括号 a[:,3]
#条件语句 np.where(t<=3.100,300)
zero = np.zeros((2,1),dtype=np.int)
a = np.arange(10,18,2)#10,12,14,16
a = np.arange(12).reshape((3,4))#从0-11
a = np.linspace(1,10,5)#在1-10中分成五段
print(a<6)#返回的是Ture False 可以直接赋值新的值a[a<6] = 3
#np.sin用的是弧度制
#两种乘法:直接* np.dot(,)
a = np.random.random((2,4))#随机生成
a = np.random.randint(1,10,12)#在1-10中随机取11个整数
#np.sum(,axis=0),np.min(,axis=1) 分别表示行列
#np.argmin()求出最小值索引值 np.mean(A) 等同于A.mean() median cumsum就是前n的和 diff()表示第n与n-1的差值 sort()逐行排序
# ptp极值 std标准差
a = np.clip(a,5,9)#把矩阵小于5的数字变成5,大于9的变成9
a.flatten()#表示将原来的数组变成一行,若要迭代所有的数据,for i in a.flat:
np.vstack((a,b))#默认按行合并
np.hstack((a,b))#左右合并
np.concatenate((a),axis=0)#0表示按行合并
# 行交换就是t[[0,2],:] = t[[2,0],:]
#分割
np.split(a,3,axis=0)#将a数组按行分成三组
np.array_split()#类似于上面,但可以允许不均匀分割
#同样也有vsplit, hsplit
三、pandas
1.numpy只能处理数值型的数据,字典字符串,时间序列啥的都不行
常用的数据类型:①Series一维,带标签数组(有索引)
②DataFrame,Series的容器
加载数据:pd.read_csv(filename) 可以有很多类型_excel....
eg:pd.read_sql(sql_sentence.connection)
DataFrame:
index,columns分别表示0轴,1轴
df.head(n) n表示前几行 tail表示后几行
df.info()
df.describe()可以计算出数理统计
排序的方法:df.sort_values(by = )后面跟的是他的名,默认是升序,若要降序则在后面添加 ascending = False
df[]里面写的是数组则是取行,字符串则是取索引
df.loc[" "," "]填的是标签名
df.iloc[n,m]直接数值取值
pd.isnull()判断是不是nan
删除掉nan所在行或者列:pd.dropna(axis =,how = "any")how里默认的值是any,有一个就把所在行列删除,all的话则需要全部为nan
版权声明:本文为weixin_51908696原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。