机器学习与飞桨PaddlePaddle开发笔记--NumPy常规操作(上)

机器学习与飞桨PaddlePaddle开发笔记–NumPy常规操作(上)

NumPy(Numerical Python)是Python中的一个线性代数库,,它为Python提供了高性能的向量、矩阵和高维数据结构的科学计算。NumPy通过C 和Fortran实现,因此在用向量和矩阵简历方程并实现数值计算时有较好的性能。对于每一个数据科学或机器学习Python而言,NumPy都是一个非常重要的库,SciPy(Scientific Python)、matplotlib、Scikit-learn等都一定程度上依赖NumPy。
Alt

1、安装NumPy

在安装PaddlePaddle时,PaddlePaddle的安装程序会自动在当下环境集成适合该PaddlePaddle版本的NumPy包。如果要单独安装NumPy,可以使用以下命令从终端上安装NumPy。

pip install numpy

如果已经安装了Anaconda,那么可以使用以下命令通过终端或命令提示符安装NumPy。

conda install numpy

2、使用Python列表创建NumPy数组

NumPy数组是包含相同类型值的网格。NumPy数组有两种形式——向量和矩阵。在计算机科学中,向量是一维数组,矩阵是多维数组。在某些情况下,矩阵也可以只有一行或一列。

在使用NumPy前,先赋予包别名

import numpy as np

先创建一个Python列表“first_list”

first_list=[1,2,3,4,5]

通过这个列表,可以简单地创建一个名为one_dimensional_list的NumPy数组,显示结果。

one_dimensional_list=np.array(first_list)
one_dimensional_list  #这里将回显刚刚由first_list数组生成的结果。

刚才将一个Python列表转换成了一维NumPy数组。要得到二维数组,就要创建一个列表为元素的列表,如以下所示。

second_list=[[1,2,3],[4,5,6],[7,8,9]]
two_dimensional_list=np.array(second_list)
two_dimensional_list
#输出结果
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

3、使用内置函数arange()创建NumPy数组

NumPy可以用arange()创建一个数组,这与Python的内置函数range()相似。

first_list=np.arange(10)
first_list
#输出结果
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

其中np.arange()函数中有3个参数。第一个参数表示起始位置,第二个参数表示终止位置,第三个参数表示步长。例如:

first_list=np.arange(0,11,2)
first_list
#输出结果
array([ 0,  2,  4,  6,  8, 10])

此外,还可以创建8个0的一维数组。

my_zeros=np.zeros(8)
my_zeros
#输出结果
array([0., 0., 0., 0., 0., 0., 0.])

也可以创建5个1的一维数组。

my_zeros=np.ones(5)
my_zeros
#输出结果
array([1., 1., 1., 1., 1.])

同样,可以生成内容都为0的7行5列的二维数组。

two_dimensional_zeros=np.zeros((7,5))
two_dimensional_zeros
#输出结果
array([[0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.]])

4、使用内置函数linspace()创建NumPy数组

linspace()函数返回在指定范围内具有指定间隔的数字。也就是说,如果要得到区间[0,12]中间隔相等的4个数,使用以下命令。

isometry_arr=np.linspace(0,12,4)
isometry_arr
#输出结果
array([ 0.,  4.,  8., 12.])

5、在NumPy中创建一个单位矩阵

例如创建一个5*5的单位矩阵。

identity_matrix=np.eye(5)
identity_matrix
#输出结果
array([[1., 0., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 1.]])

6、用NumPy创建一个由随机数组成的数组

一般常用的random系函数有rand()、randn()或randint(),它们都具备生成随机数的功能。
使用random.rand(),可以以给定的形状创建一个数组,并在数组中加入[0,1]内均匀分布的随机样本。如果要创建由4个对象组成的一维数组,并使得这4个对象均匀分布在[0,1]中,可以这样。

my_rand=np.random.rand(4)
my_rand
#输出结果
array([0.67426663, 0.50476336, 0.38135773, 0.83376911])

如果要创建一个3行4列的二维数组,则可以使用以下代码。

my_rand=np.random.rand(3,4)
my_rand
#输出结果
array([[0.43522727, 0.90746678, 0.86770753, 0.47767735],
       [0.72511681, 0.64579045, 0.4134969 , 0.13262373],
       [0.48899384, 0.2397854 , 0.21734278, 0.14707589]])

使用randn(),可以创建一个期望为0,方差为1的标准正态分布的随机样本。例如,生成30个服从标准正态分布的随机数。

my_rand=np.random.randn(30)
my_rand
#输出结果
array([ 0.4320914 , -0.62890022, -1.37132417, -1.27585465, -0.5541641 ,
        1.93722182, -1.05873892,  1.61455456,  0.41455738, -0.13648682,
       -0.74708037,  0.94088207,  0.28302203, -0.82014628, -0.36286596,
       -0.14153726,  0.14650586, -0.66341278,  0.27297678,  1.60006209,
        1.45910521, -1.23082632,  1.13940427, -1.67645643, -1.62375416,
       -0.19024862, -0.41867756, -1.04357353,  1.6009769 , -1.57468963])

要生成一个3行5列的二维数组。

my_rand=np.random.randn(3,5)
my_rand
#输出结果
array([[ 1.51147001, -0.81174233, -0.0728736 , -0.94198284,  0.47407874],
       [-1.44518736,  0.46992128,  0.73735106,  0.07505946,  0.15251287],
       [ 0.11691657,  1.23394562,  0.14796082,  1.9085517 ,  0.50810792]])

使用randint()函数生成整数数组。randint()函数最多可以有3个参数,分别是最小值(默认为0)、最大值(必填)以及数组的大小(默认为1)

my_rand=np.random.randint(5,20,7)
my_rand
#输出结果
array([12,  5, 16, 14,  5,  7, 16])

总结

以上就是今天要讲的内容,喜欢的话,关注我,大家一起学习进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值