numpy 简介

N维数组对象:ndarray

Python已有列表类型,为什么需要一个数组对象 (类型 ) ?

  • 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据

  • 设置专门的数组对象,经过优化,可以提升这类应用的运算速度 观察:科学计算中,一个维度所有数据的类型往往相同

  • 数组对象采用相同的数据类型,有助于节省运算和存储空间

1 numpy的对象:ndarray ,N维数组对象。

  它由两部分构成:
    - 实际的数据
    - 描述这戏数据的的元数据(数据维度,数据类型等)

  ndarray对象一般要求元素类型相同,包括数据类型,每个数组中元素的个数,数组的下标从0开始

2 ndarray对象的属性

    属性              说明

  .ndim   秩,即轴的数量或维度的数量

  .shape    ndarray对象的尺度,对于矩阵, n 行 m 列

  .size     ndarray对象元素的个数,相当于.shape 中n*m的值

  .dtype   ndarray对象的元素类型

  .itemsize    ndarray对象中每个元素的大小,以字节为单位

 

 3 ndarray的元素类型:
   bool   布尔类型,True 或False

    intc    与 C语言中的int类型一致,一般是int32 或int64

    intp    用于索引的整数,与 C语言中ssize_t一致,int32 或int64

    int8    字节长度的整数,取值: [ ‐128, 127]

    int16  16位长度的整数,取值: [ ‐32768, 32767]

    int32  32位长度的整数,取值: [ ‐ 2^31 , 2^31 ‐1]

    int64   64位长度的整数,取值: [ ‐ 2^63 , 2^63 ‐1]
    uint8 8位无符号整数,取值:[0, 255]

    uint16 16位无符号整数,取值:[0, 65535]

    uint32 32位无符号整数,取值:[0, 232 ‐1]

    uint64 32位无符号整数,取值:[0, 264 ‐1]

    float16 16位半精度浮点数: 1位符号位, 5位指数,10位尾数

    float32 32位半精度浮点数: 1位符号位, 8位指数,23位尾数

    float64 64位半精度浮点数: 1位符号位,11位指数,52位尾数

    complex64 复数类型,实部和虚部都是32位浮点数

    complex128 复数类型,实部和虚部都是64位浮点数

4  ndarray数组的创建方法

  (1)从Python中的列表、元组等类型创建ndarray数组  

     x = np.array(list/tuple )

        x = np.array(list/tuple, dtype=np.float32)

       当np.array()不指定dtype时,NumPy将根据数据情况关联一个dtype类型

    

    ( 2)使用NumPy中函数创建ndarray数组,如:arange, ones, zeros 等

        np.arange(n) 类似range()函数,返回ndarray类型,元素从 0 到 n ‐ 1

           np.ones(shape) 根据shape生成一个全 1数组,shape是元组类型

        np.zeros(shape) 根据shape生成一个全 0数组,shape是元组类型

        np.full(shape,val) 根据shape生成一个数组,每个元素值都是val

        np.eye(n) 创建一个正方的n*n单位矩阵,对角线为 1,其余为 0

  

        np.ones_like(a) 根据数组 a的形状生成一个全 1数组

        np.zeros_like(a) 根据数组 a的形状生成一个全 0数组

        np.full_like(a,val) 根据数组 a的形状生成一个数组,每个元素值都是val

        np.linspace() 根据起止数据等间距地填充数据,形成数组

        np.concatenate() 将两个或多个数组合并成一个新的数组

            

      

原文地址:https://www.cnblogs.com/yuanji2018/p/9984133.html