python-numpy,numpy基础知识
Numpy是python的第三方模块,以多维数组对象为核心,提供强大的科学计算能力和超快的运行速度,经常与scipy、matplotlib等模块协同工作。它是python中与科学计算相关的基础模块。
numpy中的多维数组称为ndarray,是具有相同数据类型的对象的集合。在numpy中,构建矩阵最基本的方法是通过数组函数,其用法如下
进口数量
a=numpy.array([1,2,3])
类型(a)
类“numpy.ndarray”
numpy.array([(1,-2,2),(3,2,0)])
数组([[ 1,-2,2],
[3,2,0]])对于多维数组,有以下基本属性和操作方法
1.基本属性
numpy中的数组有维度、数据类型等基本属性。例子如下
a=numpy.array([(1,-2,2),(3,2,0)])
a
数组([[ 1,-2,2],
[ 3, 2, 0]])
#数组的维数,这里是一个二维数组
a.ndim
2
#返回值是记录每个维度大小的元组
a .形状
(2, 3)
#数组中元素的总数
a .尺寸
六
#数组中元素的基本数据类型
a .数据类型
Dtype(int32)2。施工方法
在numpy中有很多方法可以构建多维数组。例子如下
#类似于内置的范围函数
#创建算术级数
np.arange(1,6)
数组([1,2,3,4,5])
#设置步长
(1,10,3)
数组([1,4,7])
#与arange不同,指定生成元素的个数,然后自动划分步长。
np.linspace(0,8,3)
数组([0。 4. 8.])
#重塑重新定义矩阵维度
a=numpy.arange(6)。整形(3,2)
a
数组([[0,1],
[2, 3],
[4, 5]])
#初始化一个矩阵,全部用0填充
np.zeros((2,4))
数组([[0。 0. 0. 0.],
[0. 0. 0. 0.]])
#初始化一个矩阵,全部用1填充
np.ones((2,4))
数组([[1。 1. 1. 1.],
[1. 1. 1. 1.]])
#初始化一个矩阵并用随机数填充它
np.empty((2,3))
数组([[-5.22979145e-299,1.28420031e 294,1.96049329e 289),
[-4.00921237E-294,3.60935879E207,1.31819562E294]]) 3 .薄片
numpy中的矩阵可以切片,一维数组的切片操作与普通python序列对象相同。用法如下
a=numpy.arange(10)
a
数组([0,1,2,3,4,5,6,7,8,9])
一个
2
[2:5]
数组([2,3,4])
一个[:6:2]=-1
a
数组([-1,1,-1,3,-1,5,6,7,8,9])
一个[:-1]
数组([ 9,8,7,6,5,-1,3,-1,1,-1])
因为我在一个:
.打印(一)
.
-1
一个
-1
三
-1
五
六
七
八
九
多维数组可以在每个维度上切片。以二维数组为例,如下
a=numpy.arange(25)。整形(5,5)
a
数组([[ 0,1,2,3,4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
#访问对应于第二行和第三列的元素
[2,3]
13
#访问第1行到第5行,该元素对应于第一列
[0:5,1]
数组([ 1,6,11,16,21])
#:表示获取所有元素。
[1:3,]
数组([[ 5,6,7,8,9],
[10, 11, 12, 13, 14]])
#你也可以不直接写。默认情况下,获取所有元素。
[1:3]
数组([[ 5,6,7,8,9],
[10, 11, 12, 13, 14]] 4.矩阵运算
Numpy可以方便地用于向量运算和矩阵运算。使用示例如下
a=np.arange(1,6)
a
数组([1,2,3,4,5])
#向量运算、加法、减法、乘法和除法
a - 1
数组([0,1,2,3,4])
a 2
数组([3,4,5,6,7])
a * 3
数组([ 3,6,9,12,15])
a/2
数组([0.5,1。 1.5, 2. 2.5])
#矩阵运算、乘法
a=np.arange(6)。整形(2,3)
b=np.arange(9)。重塑(3,3)
a @ b
数组([[15,18,21],
[42, 54, 66]])
点(b)
数组([[15,18,21],
[42, 54, 66]])
除了以上的基本概念,numpy还提供了丰富的矩阵运算的方法和函数,后面会详细介绍。
目标
—如果你喜欢,分享给你的朋友—
关注我们,解锁更多精彩内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。