jupyter notebook的使用
2019-10-31 本文已影响0人
C_Z_Q_
1.jupyter notebook的使用
- 优势:交互、支持Markdown语法
- 快捷键:运行-shif+enter
import numpy as np #查版本
np.__version__
'1.15.1'
from matplotlib import pyplot as plt
x = np.linspace(0,2*np.pi,100)
y = np.sin(x)
plt.plot(x,y)
plt.show()

- 1.1 绘制饼图
- 生成一个名字列表,9个人 A、B、C、D、E
- 随机生成这九个人的擅长使用王者荣耀英雄池的个数(120)
- 绘制擅长英雄占比图
import string
from random import randint
from matplotlib import pyplot as plt
plt.rcParams["font.sans-serif"] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = string.ascii_uppercase
x
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
labels = [i for i in x[:9]]
labels
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']
x = [randint(0,120) for i in range(9)]
x
[39, 117, 69, 12, 10, 51, 120, 19, 31]
colors=['red','green','yellow','pink','orange','blue']
plt.pie(x=x,
labels=labels,
)
plt.axis('equal') #设置成标准圆形
plt.legend(loc=2) #指定象线
plt.title('擅长英雄占比图')
plt.show()

2.jupyteernotebook魔法命令
#%timeit 用于测量代码的运行时间
%timeit L= [i **2 for i in range(1000)]
527 µs ± 15.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
%timeit L= [i **2 for i in range(100000)]#loop 循环次数由jpyter内核自己决定
55.2 ms ± 469 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
- 2.2接多行的写法%%timeit
%%timeit
L = []
for i in range(100000):
L.append(i**2)
62 ms ± 675 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
#从上面的测试可以看出,列表推导式速度高于普通for循环
- 2.3 NumPy
#导入
import numpy as np
#创建一个ndarray:类型
nparr = np.array([0,1,2,3])
nparr
array([0, 1, 2, 3])
type(nparr)
numpy.ndarray
- 2.4 python 中list
L = [i for i in range(10)]
L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#list的特点是对存储数据的类型不做约束,优点是灵活,缺点是性能不足
%timeit L2 = [i*i for i in range(1000000)]
179 ms ± 6.13 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit L3 = np.arange(1000000)
3.21 ms ± 103 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
3. 创建ndarray
#1传入列表
np.array([1,2,6,4])
array([1, 2, 6, 4])
#2.传入列表推导式
np.array([i for i in range(10)])
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#3. 使用arange() 类似于range
x = np.arange(4,10,3)
x
array([4, 7])
#创建矩阵
X = np.arange(0,16).reshape((4,4))
X
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
#ndarray是数据的维度
x.ndim
1
X.ndim
2
x.shape
(2,)
X.shape
(4, 4)
#元素个数
x.size
2
X.size
16