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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 5,301评论 0 18
  • 原文链接 《Python数据分析》(Python for Data Analysis, 2nd Edition)第...
    李绍俊阅读 8,789评论 0 5
  • 一、numpy概述 numpy(Numerical Python)提供了python对多维数组对象的支持:ndar...
    L_steven的猫阅读 3,614评论 1 24
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 1,337评论 0 5
  • 换工作之后,PYTHON就放下啦,基本没接触了,也都忘记的差不多了,现在重新捡起来 1.1 NumPy Array...
    wqh8384阅读 608评论 0 1

友情链接更多精彩内容