首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习入门 3-4 创建Numpy数组(和矩阵)

机器学习入门 3-4 创建Numpy数组(和矩阵)

作者头像
触摸壹缕阳光
发布2022-05-25 13:58:09
4880
发布2022-05-25 13:58:09
举报

其它创建 numpy.array 的方法

创建值全为 0 的 ndarray 数组

  • numpy.zeros(shape, dtype) - 创建值为 0,形状为 shape,类型为 dtype 的ndarray 数组
In [1]: import numpy as np

In [2]: np.zeros(10)
Out[2]: array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

In [3]: np.zeros(10).dtype
Out[3]: dtype('float64')
    
In [4]: np.zeros(10, dtype = int)
Out[4]: array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
    
In [5]: np.zeros((3, 5))
Out[5]: array([[0., 0., 0., 0., 0.],
               [0., 0., 0., 0., 0.],
               [0., 0., 0., 0., 0.]])
    
In [6]: np.zeros(shape = (3, 5), dtype = int)
Out[6]: array([[0, 0, 0, 0, 0],
               [0, 0, 0, 0, 0],
               [0, 0, 0, 0, 0]])

创建值全为 1 的 ndarray 数组

  • numpy.ones(shape, dtype) - 创建值为 1,形状为 shape,类型为 dtype 的ndarray 数组
In [7]: np.ones((3, 5))
Out[7]: array([[1., 1., 1., 1., 1.],
               [1., 1., 1., 1., 1.],
               [1., 1., 1., 1., 1.]])

创建值全为指定值的 ndarray 数组

  • numpy.full(shape, fill_value, dtype = None) - 创建值为 fill_value,形状为 shape 的ndarray 数组
In [8]: np.full((3, 5), 666)
Out[8]: array([[666, 666, 666, 666, 666],
               [666, 666, 666, 666, 666],
               [666, 666, 666, 666, 666]])

Notes: zeros 和 ones 函数创建的数组默认为浮点型,而 full 函数 dtype 默认为 None 类型,所以如果在使用 full 不指定 dtype 的情况下,默认为传入 fill_value 值的类型。

arange

  • numpy.arange([start, ]stop, [step, ]dtype=None)

arange 和 python 中内置的 range 函数非常像。

In [9]: [i for i in range(0, 20, 2)]
Out[9]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

In [10]: np.arange(0, 20, 2)
Out[10]: array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18])

不过 arange 函数中的 step 可以为浮点数,而 python 内置的 range 函数则不能。

In [11]: [i for i in range(0, 1, 0.2)]
Out[11]: TypeError: 'float' object cannot be interpreted as an integer
        
In [12]: np.arange(0, 1, 0.2)
Out[12]: array([0. , 0.2, 0.4, 0.6, 0.8])

linspace

  • numpy.linspace(start, stop, num=50, endpoint=True, dtype=None) - 从 [start, stop] 的全闭区间中按间隔选出 num 个数值来
In [13]: np.linspace(0, 20, 10)
Out[13]: array([ 0.        ,  2.22222222,  4.44444444,  6.66666667,  8.88888889,
       11.11111111, 13.33333333, 15.55555556, 17.77777778, 20.        ])
    
In [14]: np.linspace(0, 20, 11)
Out[14]: array([ 0.,  2.,  4.,  6.,  8., 10., 12., 14., 16., 18., 20.])

Notes: 终止点的值是包含在生成的数组中的。

随机数 random

创建随机整数的 ndarray 数组

  • random.randint(low, high=None, size=None) - 创建形状为 size 的 ndarray 数组,数组的值是从 [low, high) 区间中随机抽取的整数。
In [15]: np.random.randint(0, 10)
Out[15]: 7
    
In [16]: np.random.randint(0, 10, 10)
Out[16]: array([2, 5, 2, 4, 1, 2, 2, 8, 7, 7])

有时为了保证机器学习实验的可重复、可复制性,我们需要在训练和调试时生成的随机数是一样的。众所周知,计算机中的随机数都是伪随机数,我们可以通过设置随机种子,来保证前后生成的随机数是一样的。

In [17]: np.random.seed(666)

In [18]: np.random.randint(0, 10)
Out[18]: 6
    
In [19]: np.random.randint(0, 10)
Out[19]: 6

创建随机浮点数的 ndarray 数组

  • random.random(size=None) - 创建形状为 size 的 ndarray 数组,数组的值是 0,1之间均匀分布的浮点数
In [20]: np.random.random()
Out[20]: 0.7744794542685887
    
In [21]: np.random.random(size = (2, 5))
Out[21]: array([[0.53280254, 0.25913185, 0.58381262, 0.32569065, 0.88889931],
          [0.62640453, 0.81887369, 0.54734542, 0.41671201, 0.74304719]])

创建随机浮点数的 ndarray 数组

  • random.normal(loc=0.0, scale=1.0, size=None) - 创建形状为 size 的 ndarray 数组,数组的值是均值为 loc 方差为 scale 的浮点数
In [20]: np.random.normal()
Out[20]: -0.6564722973415308
    
In [20]: np.random.normal(0, 1, (3, 5)) 
Out[20]: array([[-0.02607576, -0.82975832,  0.29655378, -0.3126795 , -0.61130127],
               [-0.8217515 ,  0.8971227 ,  0.13607861, -0.2586548 ,  1.11076564],
               [-0.18842439, -0.04148929, -0.98479191, -1.35228176,  0.19432385]])

查看帮助文档

有两种方式可以在 Jupyter Notebook 中查看模块或函数的帮助文档

  • 在 Jupyter Notebook 外部查看帮助文档
np.random.normal? # 查看normal函数的帮助文档
np.random? # 查看random模块的帮助文档
  • 在 Jupyter Notebook 内部查看帮助文档
help(np.random.normal)

References:

  1. Python3入门机器学习 经典算法与应用: https://coding.imooc.com/class/chapter/169.html#Anchor
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 其它创建 numpy.array 的方法
  • arange
  • linspace
  • 随机数 random
  • 查看帮助文档
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档