python 2-4(2019-10-31 )(Jupyternotebook的使用)

Jupyternotebook的使用

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["font.sans-serif"] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()


image.png

快捷键

  • 运行 – shif+enter

绘制饼图

  • 生成名字列表 9个人 A、B、C、D
  • 随机生成这9个人擅长使用王者荣耀英雄池的个数(120))
  • 绘制擅长英雄占比图
import string
string.ascii_uppercase
# 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
string.ascii_uppercase[:9]
# 'ABCDEFGHI'
labels = [ x for x in string.ascii_uppercase[:9]]
labels
# ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']
from random import randint
values = [randint(0, 121) for _ in range(9)]
values
# [23, 103, 68, 7, 73, 96, 86, 46, 87]
plt.pie(values,labels=labels,autopct='%1.1f%%',shadow=True)
plt.axis('equal')
plt.legend()
plt.title('王者荣耀玩家擅长英雄占比图')
plt.show()


image.png

jupyternotebook魔法命令

%timeit 用于测量代码的运行时间

%timeit后面只能接一句话

%timeit L = [i**2 for i in range(1000)]
# 361 µs ± 7.92 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
%timeit L = [i**2 for i in range(1000)] #loop循环的次数由jpyter内核自己决定
# 361 µs ± 4.93 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

接多行的写法%%timeit

%%timeit
L = []
for i in range(1000):
    L.append(i**2)
 # 410 µs ± 16.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

从上面的测试可以看出,列表推到式速度高于普通for循环

Numpy

NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。

导入

import numpy as np
# 创建一个ndarray;类型
nparr = np.array([0, 1, 2, 3])
nparr
# array([0, 1, 2, 3])
type(nparr)
# numpy.ndarray

python中list

L = [i for i in range(10)]
L
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

list的特点是对存储数据的类型不做约束, 优点是灵活, 缺点是性能不足

%timeit L2 = [i for i in range(1000000)]
# 88.1 ms ± 2.51 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit L3 = np.arange(1000000)
# 2.58 ms ± 146 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

创建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(10)
x
# array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

创建矩阵

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的常用属性

# ndim是数据的维度
x.ndim
1
X.ndim
2
# 形状
x.shape
(10,)
X.shape
(4, 4)
# 元素的个数
x.size
# 10
X.size
# 16

https://www.jianshu.com/p/4d59d3f4e281

Python量化投资网携手4326手游为资深游戏玩家推荐:《【少女前线】第六期CV即将实装:最后一批介绍!

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
NumPy
NumPy
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论