python虽然也提供数组模块,但是只支持一维数组,不支持多维数组,也不具备各种运算功能,不适合数值运算。NumPy的出现弥补了这些不足。本文主要介绍了Python中NumPy的安装和基本操作的相关信息,有需要的可以参考一下。
目录
NumPy是什么?安装numpy多维数组创建多维数组多维数组的通用属性多维数组的基本操作数组的算术操作数组的自操作随机数组索引、切片、迭代汇总
Numpy是什么
很简单,Numpy是Python的科学计算库,提供了矩阵运算的功能。它通常与Scipy和matplotlib一起使用。实际上,list已经提供了类似于矩阵的表示,但是numpy为我们提供了更多的函数。如果你接触过matlab和scilab,那么numpy很容易上手。
NumPy是一个用于科学计算和数据分析的高性能基础包。
NumPy的安装
NumPy的安装相对简单。我们可以通过Anaconda中的命令或“pip install NumPy”语句来安装它。如果需要验证NumPy是否安装成功,可以在安装NumPy后输入“import NumPy”运行,看看是否输出错误提示。
多维数组
创建多维数组将numpy作为np导入
#用数组创建
A=np.array([1,2,3]) #创建一个一维数组
打印(一份)
B=np.array([[1,2,3],[4,5,6]]) #创建一个高维数组
打印(b)
#在NumPy中使用1创建一个维数为1且所有元素都为1的数组。
C=np.ones([2,3]) #全1的数组
打印(c)
C[1,2]=3 #覆盖数组中的元素。
打印(c)
#创建一个维度和所有元素都为0的数组。
d=np.zeros([2,3])
打印(d)
#创建一个指定维数的数组,其元素都是随机数
e=np.empty([2,3])
打印(e)
多维数组的常用属性Ndim:返回计算的数组维数,即维数。
#创建一个指定维数的数组,其元素都是随机数
e=np.empty([2,3])
打印(e)
打印(电子文件)
结果:
[[0.0.0.]
[0.0.0.]]
2
Shape:返回数组的维度值,使用整数数据类型的元组表示返回结果。例如,如果二维数组返回的结果是(n,m),那么n和m表示数组中相应维度的数据的长度。如果使用shape输出矩阵的维数,那么在output (n,m)中,n表示矩阵的行,m表示矩阵的列。
#创建一个指定维数的数组,其元素都是随机数
e=np.empty([2,3])
打印(e)
打印(例如形状)
结果:
[[0.0.0.]
[0.0.0.]]
(2, 3)
Size:返回数组中要计数的元素总数。
#创建一个指定维数的数组,其元素都是随机数
e=np.empty([2,3])
打印(e)
打印(e.size)
结果:
[[0.0.0.]
[0.0.0.]]
六
Dtype:返回数组中元素的数据类型。但是显示的数据类型和我们之前定义的变量的数据类型名称不同,因为这些数据类型都是由NumPy定义的,用NumPy.int32、numpy.int16、numpy.float64等格式的名称来表示NumPy中的数据类型。
#创建一个指定维数的数组,其元素都是随机数
e=np.empty([2,3])
打印(e)
打印(电子版)
结果:
[[0.0.0.]
[0.0.0.]]
float64
多维数组的基本操作
数组的算术运算数组可以直接进行加、减、乘、除的算术运算。
将numpy作为np导入
g=np.array([1,2,3])
h=np.array([4,5,6])
Print(a-b-,a-b) #打印a-b的结果。
Print(a b=,a b) #打印a b的结果。
Print(a/b=,a/b) #打印a/b的结果。
Print(a*b=,a*b) #打印a*b的结果
结果:
a-b- [-3 -3 -3]
a b=[5 7 9]
a/b=[0.25 0.4 0.5 ]
a*b=[ 4 10 18]
进程结束,退出代码为0
从上面的例子可以看出,虽然数组在结构上与矩阵相似,但其运算与之前介绍的矩阵运算不同:首先,矩阵中没有除法运算,但数组是可以除法的;其次,数组的乘法机制是通过位置对应的元素相乘来完成的,不同于矩阵的乘法机制。我们来看看如何通过数组实现矩阵乘法。
a=np.array([1,2,3])
b=np.array([4,5,6])
Print(a-b-,a-b) #打印a-b的结果。
Print(a b=,a b) #打印a b的结果。
Print(a/b=,a/b) #打印a/b的结果。
Print(a*b=,a*b) #打印a*b的结果
c=a点(b)
Print(Matrix1: a*b=,c) #打印a*b的结果。
d=np.dot(a,b)
Print(Matrix2: a*b ,c) #打印a*b运行后结果的输出内容
结果:
a-b=[-3 -3 -3]
a b=[5 7 9]
a/b=[0.25 0.4 0.5 ]
a*b=[ 4 10 18]
矩阵1: a*b=32
矩阵2: a*b 32
进程结束,退出代码为0
在上面的代码中,用了两种方法实现矩阵乘法,计算结果是一样的。数组和矩阵的算术运算还有一个很大的区别,就是数组可以直接用标量进行算术运算,而在矩阵运算中是不可以的。
a=np.array([1,2,3])
打印( a * 2=,a * 2)
打印( a 1 2=,a/2)
打印( a - 2=,a - 2)
打印( a 2=,a 2)
结果:
a * 2=[2 4 6]
a 1 2=[0.5 1。1.5]
a - 2=[-1 0 1]
a 2=[3 4 5]
数组的自身运算(1)min:默认查找数组中所有元素中值最小的元素,通过设置axis的值可以按行或列查找元素中的最小值。
(2) max:默认查找数组中所有元素中值最大的元素。通过设置axis的值,可以按行或列查找元素中的最大值。
(3) sum:默认情况下,对数组中的所有元素求和并返回结果。通过设置axis的值,还可以按行或列对元素求和。
(4) exp:对数组中的所有元素进行指数运算。
(5) sqrt:对数组中的所有元素进行平方根运算。
(6) square:将数组中的所有元素平方。
随机数组生成随机数在我们的日常应用中非常有用。NumPy中有多种方法生成不同属性的随机数,以满足计算中使用随机数的需求。
(1)种子:随机因素。随机数生成器的随机因子确定后,无论我们运行多少次随机程序,最终生成的数都是一样的。随机因素更像是把随机过程变成了伪随机机制,但有利于结果的再现。
(2) rand:在[0,1]范围内产生一个满足均匀分布的随机样本数。
(3) randn:生成一个均值为0,方差为1的随机样本数。
(4)randint:生成给定范围内整数类型的随机样本数。
(5)二项式:生成由-维指定的满足二项式分布的随机样本数。
(6) beta:生成指定维数且满足beta分布的随机样本数。
(7)正态:生成指定维数且满足高斯分布的随机样本数。
索引、切片、迭代数组中还有索引、切片、迭代,操作过程和链表类似,但多维数组在索引、切片、迭代上比一维数组复杂。
a=np.arange(10)
Print(a) #输出整个数组
Print(a[:5]) #输出数组的前五个元素
For i in a: # Iterate输出数组的所有元素
打印(一)
结果:
[0 1 2 3 4 5 6 7 8 9]
[0 1 2 3 4]
0
一个
2
三
四
五
六
七
八
九
进程结束,退出代码为0
总结
关于python中NumPy的安装和基本操作的这篇文章到此为止。关于python中NumPy基本操作的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望你以后能支持我们!