zoukankan      html  css  js  c++  java
  • 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数据类型

      

      

  • 相关阅读:
    sencha touch学习心得之FormPanel
    从零开始学习Sencha Touch MVC应用之十九
    sencha touch中datepicker的汉化
    从零开始学习Sencha Touch MVC应用之十九
    从零开始学习Sencha Touch MVC应用之十八
    sencha touch中datepicker的汉化
    sencha touch学习心得之FormPanel
    常用内置模块(二)——logging模块
    包的介绍
    常用内置模块(一)——time、os、sys、random、shutil、pickle、json
  • 原文地址:https://www.cnblogs.com/wl413911/p/11320615.html
Copyright © 2011-2022 走看看