JupyterNotebook⼯具中ndarry数组的使⽤(⼀)
今天学习了jupyter notebook⼯具中ndarray数组的使⽤。具体包括:
第⼀步,导⼊numpy包 -------import numpy as np
第⼆步,创建ndarray数组。通过numpy模块中的常⽤的⼏个函数进⾏创建ndarray多维数组对象,主要函数如下:
array函数:接收⼀个普通的python序列,并将其转换为ndarray----np.array([x,y,z,…])
zeros函数:创建指定长度或者形状的全零数组。------np.zeros((x,y))
ones函数:创建指定长度或者形状的全1数组。-----np.ones((x,y))
empty函数:创建⼀个没有任何具体值的数组(准备地说是创建⼀些未初始化的ndarray多维数组)----np.empty((x,y))
arange函数: 类似python的range函数,通过指定开始值、终值和步长来创建⼀个⼀维数组,注意:最终创建的数组不包含终值-----
np.arange(x,y,z)
x起始值 y终⽌值(但是创建的数组不包括y) z步长
linspace函数:通过指定开始值、终值和元素个数来创建⼀个⼀维数组,数组的数据元素符合等差数列,可以通过endpoint关键字指定是否包含终值,默认包含终值------np.linsapce(x,y,z,endpoint=True) x起始值 y终⽌值 z个数
logspace函数:和linspace函数类似,不过创建的是等⽐数列数组—np.logsapce(x,y,z,endpoint=True,base=…) x起始值 y终⽌值(x,y是次数) z个数 , base指定底数默认值是10
使⽤随机数填充数组,即使⽤numpy.random中的random()函数来创建0-1之间的随机元素,数组包含的元素数量由参数决定 —
np.random.random((x,y,z))
第三步,ndarray数组的属性。
ndim 数组轴(维度)的个数,轴的个数被称作秩 arr.ndim
shape 数组的维度, 例如⼀个2排3列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,即维度或者ndim属性 arr.shape
linspace函数pythonsize 数组元素的总个数,等于shape属性中元组元素的乘积。 arr.size
dtype ⼀个⽤来描述数组中元素类型的对象,可以通过创造或指定dtype使⽤标准Python类型。不过NumPy提供它⾃⼰的数据类型。arr.dtype
itemsize 数组中每个元素的字节⼤⼩。例如,⼀个元素类型为float64的数组itemsiz属性值为8(=64/8),⼜如,⼀个元素类型为
complex32的数组item属性为4(=32/8). arr.itemsize
创建numpy数组的时候可以通过属性dtype显⽰指定数据类型,如果不指定的情况下,numpy会⾃动推断出适合的数据类型,所以⼀般不需要显⽰给定数据类型。np.array([],dtype=…)
如果需要更改⼀个已经存在的数组的数据类型,可以通过astype⽅法进⾏修改从⽽得到⼀个新数组 arr.astype(…)
第四步,ndarray 修改形状
对于⼀个已经存在的ndarray数组对象⽽⾔,可以通过修改形状相关的参数/⽅法从⽽改变数组的形状。
直接修改数组ndarray的shape值, 要求修改后乘积不变。arr.shape(x,y)
直接使⽤reshape函数创建⼀个改变尺⼨的新数组,原数组的shape保持不变,但是新数组和原数组共享⼀个内存空间,也就是修改任何⼀个数组中的值都会对另外⼀个产⽣影响,另外要求新数组的元素个数和原数组⼀致。shape(x,y)
当指定某⼀个轴为-1的时候,表⽰将根据数组元素的数量⾃动计算该轴的长度值。
第五步,ndarray 基本操作。—元素级运算
数组不⽤循环即可对每个元素执⾏批量的算术运算操作,这个过程叫做⽮量化,即⽤数组表达式代替循环的做法。
⽮量化数组运算性能⽐纯Python⽅式快上⼀两个数据级。
⼤⼩相等的两个数组之间的任何算术运算都会将其运算应⽤到元素级上的操作。
元素级操作:在NumPy中,⼤⼩相等的数组之间的运算,为元素级运算,即只⽤于位置相同的元素之间,所得的运算结果组成⼀个新的数组,运算结果的位置跟操作数位置相同。
第六步,ndarray的矩阵积,
两个⼆维矩阵(⾏和列的矩阵)满⾜第⼀个矩阵的列数与第⼆个矩阵的⾏数相同,那么可以进⾏矩阵的乘法,即矩阵积,矩阵积不是元素级的运算。也称为点积、数量积。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论