1. Jupyter Notebook、numpy的使用

一. Jupter Notebook中的魔法方法

%run的使用

  • 加载不在项目包中的文件
  • 项目中的包不使用%run, 使用python的import语法即可
1. %run  myscript/hello.py

2. hello("balabala")      # 这样就可以直接调用hello.py中的函数了

%timeit的使用

  • 会先自动 把程序重复执行一定次数, 程序执行时间太短就会循环更多次
  • 通过找到最快的3次循环, 得到程序执行的时间
1. %timeit  L = [i**2 for i in range(1000)]

结果:  1000 loops, best of 3: 515 µs per  loop

%time的使用

  • 不会把程序重复运行, 只执行一次得到程序的运行时间
  • cputime是计算机cpu和sys 计算所用时间的和
  • walltime是现实世界流逝的时间
  • 得到的时间是不稳定的
  • 在只需要知道大概的时间或者程序运行时间太长, 适用
1. %time L = [i**2 for i in range(1000)]

结果:  CPU times: user 452 µs, sys: 17 µs, total: 469 µs
       Wall time: 536 µs

如果想要测试整段代码, 可以使用%%

  • 举例
%%time
for e in [1,2,3,4,6]:
  print(e)


二. Numpy数据基础

np.array的使用

1. import numpy as np
2. nparr = np.array([i for i in range(10)])
3. nparr

out: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])


1. nparr[5]
out: 5


1. nparr[5]=100.0
2. nparr[5]
out: 100  

1. nparr.dtype
out: dtype('int64')     # 之前的100.0被 隐式地类型转换了

三. 创建Numpy数组和矩阵

  • 创建全零矩阵
1. np.zeros(10)    # 默认是浮点数类型
out: array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

2. np.zeros(10, dtype=int)    # 可以指定为 int 类型
out: array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

3. np.zeros((3,5))     # 传入元组 表示维度
out:array([[0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.]])

4. np.zeros(shape=(3,5), dtype=int)   # 3中其实省略了shape
out:array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])
  • 创建全一矩阵
1. np.ones((3,5))    # 用法和zeros一样
out: array([[1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.]])
  • 创建全部都为指定值的矩阵
1. np.full((3,5), 666)    # 省略了参数名 np.full(shape=(3,5), full_value=666)
out:array([[666, 666, 666, 666, 666],
       [666, 666, 666, 666, 666],
       [666, 666, 666, 666, 666]])



# 这里 full_value是 666, out就会是int型, 如果给的是666.0, out就会是浮点型
  • np.arrange
1. np.arange(0,1,0.2)
out: array([0. , 0.2, 0.4, 0.6, 0.8])

# np.arange使用方法和python基础语法range一样, 得到前闭后开的数据集
# 但np.arange步长可以是浮点数, 二range只能是整数
  • np.linspace
1. np.linspace(0,20,10)
out:array([ 0.        ,  2.22222222,  4.44444444,  6.66666667,  8.88888889,
       11.11111111, 13.33333333, 15.55555556, 17.77777778, 20.        ])

# linspace  第三个参数是 得到的数据个数, 而非步长
  • np.random.randint
1. np.random.randint(0, 10, 10)   # 生成10个 0~10的随机数, 组成的向量
out:array([1, 8, 1, 4, 6, 8, 7, 1, 7, 1])


2. np.random.randint(4,8,size=(3,5))   # 生成3x5的随机矩阵
out:array([[7, 5, 4, 5, 5],
       [4, 6, 7, 6, 5],
       [5, 6, 6, 6, 7]])
       
3. np.random.seed(666)  # 指定随机种子
4. np.random.randint((4,8, size=(3,5))
out:array([[4, 6,
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值