机器学习与飞桨PaddlePaddle开发笔记–NumPy常规操作(上)
NumPy(Numerical Python)是Python中的一个线性代数库,,它为Python提供了高性能的向量、矩阵和高维数据结构的科学计算。NumPy通过C 和Fortran实现,因此在用向量和矩阵简历方程并实现数值计算时有较好的性能。对于每一个数据科学或机器学习Python而言,NumPy都是一个非常重要的库,SciPy(Scientific Python)、matplotlib、Scikit-learn等都一定程度上依赖NumPy。
文章目录
- 机器学习与飞桨PaddlePaddle开发笔记--NumPy常规操作(上)
- 1、安装NumPy
- 2、使用Python列表创建NumPy数组
- 3、使用内置函数arange()创建NumPy数组
- 4、使用内置函数linspace()创建NumPy数组
- 5、在NumPy中创建一个单位矩阵
- 6、用NumPy创建一个由随机数组成的数组
- 总结
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])
总结
以上就是今天要讲的内容,喜欢的话,关注我,大家一起学习进步。