wl413911

numpy中ndarray数据结构简介

一、综述

  1、ndarray的本质是:对象

     2、ndarray是numpy中的数据结构(叫做:n维数组),是同构数据多维容器,所有元素必须是相同类型

  3、面向数组的编程和思维方式:用简洁的数组表达式代替循环写法,通常叫做 --‘矢量化’

 二、创建ndarray对象

  3种方式: (1)从python的基础数据对象转化; (2)通过numpy内置函数生成 ; (3)从硬盘(文件)中直接读取

 

  2.1 直接从list对象创建

    a = np.array([1,2,3,4,5])  # array([1,2,3,4,5])

    b = np.array([1,2,3,4,5],dtype=np.float)   #  array([1.,2.,3.,4.,5.])   创建时直接转换数据类型

    c = a.astype(np.float64)   #array([1.,2.,3.,4.,5.])   创建后,通过内置的astype() 函数,转换数据类型

  2.2 通过numpy内置函数生成

    

   2.3  从硬盘(文件)中直接读取

    numpy.loadtxt()

      参数:

         fname :文件 或者文件路径(字符串),支持压缩的数据文件 包括gz、bz

         dtype:数据类型,默认为float64(64位双精度浮点数)

         comments: 字符串或 字符串组成的列表,默认为# , 是表示注释字符集开始的标志

         delimiter: 字符串,用来分割多个列的分隔符,默认 为 空格

            converters: 字典, 用于将特定列的数据,转换为字典中对应的函数的浮点型数据,默认为空

            skiprows : 正整数n,读取时跳过前n行,默认为零

            usecols : 元组(元组内数据为列的数值索引), 用来指定要读取数据的列(第一列为0),默认为空

         unpack: 布尔值(True/False), 用来指定是否转置

         ndmin : 整数型,值域为0、1、2,默认为0, 用于指定返回的数组至少包含特定维度的数组

    numpy.savetxt()

三、ndarray属性:   

  1、ndarray.ndim:数组的维数(即数组轴的个数,也被称作为  秩 )。

  2、ndarray.shape:数组的维数、维度,返回一个元组,这个元组的长度就是维度的数目,即ndim属性。比如2排3列的矩阵,其shape就是二元组(2,3)

  3、ndarray.size:数组元素的总个数,等于shape属性的 元组中各元素的乘积。

  4、ndarray.dtype:表示数组中元素类型的对象

  5、itemsize : 数组中 每个元素 占用的 字节大小

  6、ndarray.flags  #返回数组内部的信息(

          C_CONTIGUOUS : True   
          F_CONTIGUOUS : False
          OWNDATA : True
          WRITEABLE : True
          ALIGNED : True
          UPDATEIFCOPY : False

特殊,ndarray对象可 通过 reshape() 方法,重新组织数组的维数维度(即数组的形状),其中用 -1代表自动推断某维度的维数

四、ndarray方法

  ndarray.ptp(axis=None,out=None) # 返回数组的最大值-最小值  或者   某一个轴的最大值-最小值

  ndarray.clip(a_min,a_max,out=None) # 小于最小值的赋值为 最小值 ;大于最大值的 赋值为 最大值

  ndarray.all()  # 如果所有元素都为真,那么返回真;否则,返回假

  ndarray.any() #如果所有元素有任何一个真,则返回真

  ndarray.swapaxes(axis1,axis2)  # 交换两个轴的元素,  轴用数字表示,0,1,2......

  下面为改变数组维度和大小的方法

  ndarray. reshape() #  改变数组的形状,不改变数组中元素的个数

  ndarray.resize() # 改变数组元素的个数

  ndarray.transpose(*axes)  # 返回转置矩阵

  ndarray.flatten() # 将原矩阵转换为一维数组

  ndarray.reval() # 返回 一维数组

  ndarray.squeeze()  # 移出长度为1的轴

  ndarray.tolist()  #  将数组转化为列表

  ndarray.take(indices,axis=None,out = None,mode = 'raise') # 获得数组的指定索引的数据

  

  numpy.put(a,index,v,mode='raise') #  用v的值替代数组a中index处的值,Mode可以为raise/wrap/clip 。clip :如果给的index超过了数组的大小,那么替换最后一个元素

  numpy.repeat(a,repeats_num,axis = None)  # 重复数组的元素  

  numpy.tile(A, reps):根据给定的reps重复数组A,和repeat不同,repeat是重复元素,该方法是重复数组。

  ndarray.var(axis=None, dtype=None, out=None, ddof=0):返回数组的方差,沿指定的轴。

  ndarray.std(axis=None, dtype=None, out=None, ddof=0):沿给定的轴返回数则的标准差

  ndarray.prod(axis=None, dtype=None, out=None):返回指定轴的所有元素乘机

  ndarray.cumprod(axis=None, dtype=None, out=None):返回指定轴的累积,如下:

  ndarray.mean(axis=None, dtype=None, out=None):返回指定轴的数组元素均值

  ndarray.cumsum(axis=None, dtype=None, out=None):返回指定轴的元素累计和。

  ndarray.sum(axis=None, dtype=None, out=None):返回指定轴所有元素的和

  ndarray.trace(offset=0, axis1=0, axis2=1, dtype=None, out=None):返回沿对角线的数组元素之和

  ndarray.round(decimals=0, out=None):将数组中的元素按指定的精度进行四舍五入

  ndarray.conj():返回所有复数元素的共轭复数,

  ndarray.argmin(axis=None, out=None):返回指定轴最小元素的索引。

  ndarray.min(axis=None, out=None):返回指定轴的最小值

  ndarray.argmax(axis=None, out=None):返回指定轴的最大元素索引值

  ndarray.diagonal(offset=0, axis1=0, axis2=1):返回对角线的所有元素。  

  ndarray.compress(condition, axis=None, out=None):返回指定轴上条件下的切片。

  ndarray.nonzero():返回非零元素的索引

五 、ndarray数据类型

  

  

 

posted on 2019-08-14 14:01  wl413911  阅读(1951)  评论(0编辑  收藏  举报