Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。
朱皮特
安装Jupyter Notebook的前提是需要安装了Python(3.3版本及以上,或2.7版本)
pip3 install jupyter
如果按照超时可以参照如下进行换源安装完成。
• 国内镜像:
• 阿里云 http://mirrors.aliyun.com/pypi/simple/
• 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
• 豆瓣(douban) http://pypi.douban.com/simple/
• 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
• 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
• 修改源的方法
• pip install packagename -i link
• 举例如下:pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
首先进入工作路径,后终端输入命令
jupyter notebook
pip install jupyter notebook -i https://pypi.tuna.tsinghua.edu.cn/simple
Matplotlib是Python的绘图库,其中的pyplot包封装了很多画图的函数。Matplotlib.pyplot 包含一系列类似 MATLAB 中绘图函数的相关函数。
pip3 install matplotlib
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(20, 10),facecolor='snow')
ax1 = plt.subplot(2,3,1) # 2*2 最多为6个图形 index=1 选择了第一个
ax3 = plt.subplot(2,3,1)
ax2 = plt.subplot(2,3,2)
ax3 = plt.subplot(2,3,3)
ax4 = plt.subplot(2,3,4)
ax3 = plt.subplot(2,3,5)
ax4 = plt.subplot(2,3,6)
fig,axs = plt.subplots(2,2,sharex=True,sharey=True,figsize=(14,8)) # 2*2 nrows子图的行数 ncols子图列数 sharex,sharey 共享x,y轴.
axs[0,0].scatter(range(5),range(5)) # [0,0]选中第一张图
axs[0,1].scatter(range(5),list(range(5))[::-1]) # [0,1] 选中第二张图
fig,axs = plt.subplots(2,2,sharex=True,sharey=False,figsize=(16,8),facecolor='snow')
axs[0,0].scatter(range(1,10),range(1,10)) #绘制散点图
axs[0,1].plot(range(1,10),range(1,10))#绘制折线图
plt.subplots_adjust(wspace=0,hspace=0)#调整子图间距
plt.show()
直方图绘制: hist(x,bins=None)函数 绘制以x为数值 bins为组数的直方图
组数=极差/组距,注意必须是整数
实例:
某地区连续50年中四月份平均气温数据如下: temp_li= [6.9,4.1,6.6,5.2,6.4,7.9,8.6,3.0,4.4,6.7,7.1,4.7,9.1,6.8,8.6,5.2,5.8,7.9,5.6,8.8,8.1,5.7,8.4,4.1,6.4,6.2,5.2,6.8,5.6,5.6,6.8,8.2,6.4,4.8,6.9,7.1,9.7,6.4,7.3,6.8,7.1,4.8,5.8,6.5,5.9,7.3,5.5,7.4,6.2,7.7] 根据以上数据,推断该地区四月份平均气温的分布类型。
from matplotlib import pyplot as plt
import random
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
temp_li= [6.9,4.1,6.6,5.2,6.4,7.9,8.6,3.0,4.4,6.7,7.1,4.7,9.1,6.8,8.6,5.2,5.8,7.9,5.6,8.8,8.1,5.7,8.4,4.1,6.4,6.2,5.2,6.8,5.6,5.6,6.8,8.2,6.4,4.8,6.9,7.1,9.7,6.4,7.3,6.8,7.1,4.8,5.8,6.5,5.9,7.3,5.5,7.4,6.2,7.7]
differ = max(temp_li)-min(temp_li) #极差
g_distance = 1
g_num = round(differ/g_distance)# 注意组数必须为整数,不能为小数,所以此处四舍五入。默认为10
plt.xlabel('组数')
plt.ylabel('频数')
plt.title('直方图')
plt.hist(temp_li,g_num)
plt.xlabel('组数')
plt.ylabel('频率')
plt.title('直方图')
plt.hist(temp_li,g_num,density=True) #频率图 增加density
plt.show()
import json
'''
python操作json文件
1.把一个python类型数据直接写入json文件
json.dump(data1, open(‘xxx.json’, “w”));
2.直接从json文件中读取数据返回一个python对象
data3 = json.load(open(‘xxx.json’));
'''
dict_name = {"lxy":"win"}
print(dict_name)
# 上下文
with open('dict_file.txt','w',encoding='gbk') as f:
json.dump(dict_name,f)
with open('dict_file.txt','r',encoding='gbk') as f:
str_dict = json.load(f)
print(str_dict)
print(str_dict['lxy'])
import csv
with open('csv_demo.csv','w',encoding='gbk',newline="") as f:
datewriter = csv.writer(f)
#逐行写入
datewriter.writerow(['name','age','address'])
#多行写入
datewriter.writerows([['小李',18,'北京'],['小张',28,'上海']])
with open('csv_demo.csv','r',encoding='gbk',newline="") as f:
dateread = csv.reader ( f ) # 返回的是一个迭代器
for date in dateread:
print(date)
import pandas as pd
#pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/
data = pd.read_csv('csv_demo.csv',encoding='gbk')
data.to_csv('csv_demo1.csv,encoding='gbk')
print(data)
from openpyxl import Workbook
# pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/
wb = Workbook() #创建工作簿
ws = wb.active #激活第一个工作表
data = [
["name","age"],
["zhangsan","38"],
["lisi","40"],
["wangwu","60"]
]
#for row in data[0]:
for row in data:
ws.append(row)
wb.save('demo4.xlsx')
#=====读取
from openpyxl import load_workbook
rb = load_workbook('demo4.xlsx')#打开工作簿
rs = rb.active #读取第一个工资表
#获取表里面的数值
# ws.rows # 生成器对象
for row in rs.rows:
print('row = ',row)
for cell in row:
print('cell=',cell)
print ( 'cell value=', cell.value )
# 用pandas读取excel
#data_ex = pd.read_excel('demo4.xlsx',sheet_name=0)
#print(data_ex)
#data_ex.to_excel('demo5.xlsx',index=False)
#long--type
import numpy as np
li = [1,2,3,4]
a1 = np.array(li)
print(type(a1))
print(a1)
a2 = np.array(range(1,5))
print(type(a2))
print(a2)
a3 = np.arange(1,5)
print(a3)
li1 = ["1",0.5,30]
li2 = ["2",0.5,30]
b = np.array(li2)
print(b)
print(b.dtype) #获取数据类型
li = [1,2,3,4,5]
#a = ''.join([str(x) for x in li])
#a=[str(x) for x in li]
#print(a)
# map
a1 = list(map(str,li))
print(a1)
#在创建的时候通过dtype指定数组类型
a2 = np.array(li,dtype="U")
print(a2)
a3 = a2.astype("U") #创建后修改类型,并没有改变原有的数值
print(a3)