美文网首页
NumPy库入门

NumPy库入门

作者: 闫_锋 | 来源:发表于2018-05-16 21:18 被阅读5次

    维度: 一组数据的组织形式

    一维数据: 对应列表,数组和集合等概念(线性方式组织)

    列表: 数据类型可以不同
    数组: 数据类型相同

    二维数据: 由多个一维数据构成,是一维数据的组合形式。

    多维数据: 例如时间维度

    高维数据仅利用最基本的二元关系展示数据间的复杂结构

    一维数据: 列表和集合类型
    二维数据: 列表类型
    多维数据: 列表类型
    高维数据: 字典类型或数据表示格式
    (JSON, XML和YAML格式)

    NumPy的数组对象: ndarray,N维数组对象
    广播功能函数
    整合C/C++/Fortran代码工具
    线性代数,傅里叶变换,随机数生成等功能

    ndarray - 向量化运算

    import numpy as np
    

    观察: 科学计算中,一个维度所有数据的类型往往相同。

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

    ndarray是一个多维数组对象,由两部分构成:

    • 实际的数据
    • 描述这些数据的元数据(数据维度,数据类型等)
    • 所有元素类型相同,数组下标从0开始

    非同质ndarray对象无法有效发挥NumPy优势,尽量避免使用。

    ndarray数组的创建方法

    • 从Python中的列表,元组等类型创建ndarray数组
    • 使用NumPy中函数创建ndarray数组,如:arange, ones, zeros等
    • 从字节流中创建ndarray数组
    • 从文件中读取特定格式,创建ndarray数组

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

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

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

    np.arange(n)
    np.arange(10)
    
    np.ones(shape)
    np.ones((3,6))
    np.ones((3,6), dtype=np.int32)
    np.ones((2,3,4), dtype=np.int32)
    
    np.zeros(shape)
    
    
    np.full(shape, val)
    
    
    np.eye(n)
    np.eye(5)
    
    
    np.one_like(a)
    np.zero_like(a)
    np.full_like(a, val)
    
    np.linspace()
    np.linspace(1, 10 ,4)
    np.linspace(1, 10 ,4, endpoint=False)
    
    np.concatenate()
    

    对于创建后的ndarray数组,可以对其进行维度变化和元素类型变换

    a = np.ones(2, 3, 4), dtype = np.int32)
    
    .reshape(shape)
    .resize(shape) #改变原数组
    .swapaxes(ax1, ax2)
    .flatten()
    
    
    a = np.ones((2, 3, 4), dtype=np.int32)
    a = reshape((3, 8))
    a.flatten() #降维
    
    a.astype(new_type) #创建新数组
    
    ls = a.tolist()
    

    相关文章

      网友评论

          本文标题:NumPy库入门

          本文链接:https://www.haomeiwen.com/subject/otdmdftx.html