• numpy模块


    numpy是python的一个补充程序库,机器学习的框架,可以进行大量的维度数组和矩阵运算,对数组运算提供大量的数学函数库,内部解除了全局解释器锁GIL,运行效率高。

    numpy中的数组的存储效率和输入输出性能均远远优于python中等价的基本数据结构,其能够提升的性能是与数组中的元素成比例的。

    numpy使用内存映射文件以达到最优的数据读写性能,内存的大小限制了其对TB级的大文件的处理

    1.load()和save()处理二进制文件(.npy)

    2.loadtxt()和savetxt()处理正常的文本文件

    numpy.save(file,arr,allow_pickle=true,fix_import = true)

    file:文件名/文件路径

    arr:要存储的数组

    allow_pickle:布尔值,允许使用python pickle保存对象数组

    fix_imports:为了方便python2读取python3保存的数据

    例:

    import numpy as np

    x = np.arange(10)

    array([0 1 2 3 4 5 6 7 8 9])

    # 保存

    np.save("save_x",x)

    # 读取

    np.load("save_x.npy")

    将多个数组保存到一个文件中:numpy.savez(.npz)

    >>> import numpy as np

    #生成数据
    >>> x=np.arange(10)
    >>> x
    array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    >>> y=np.sin(x)
    >>> y
    array([ 0.        ,  0.84147098,  0.90929743,  0.14112001, -0.7568025 ,
           -0.95892427, -0.2794155 ,  0.6569866 ,  0.98935825,  0.41211849])
             
    #数据保存
    >>> np.save('save_xy',x,y)
      
    #读取保存的数据
    >>> npzfile=np.load('save_xy.npz')
    >>> npzfile  #是一个对象,无法读取
    <numpy.lib.npyio.NpzFile object at 0x7f63ce4c8860>
      
    #按照组数默认的key进行访问
    >>> npzfile['arr_0']
    array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    >>> npzfile['arr_1']
    array([ 0.        ,  0.84147098,  0.90929743,  0.14112001, -0.7568025 ,
           -0.95892427, -0.2794155 ,  0.6569866 ,  0.98935825,  0.41211849])

     常用属性:

    import numpy as np

     
    # 创建简单的列表
    a = [1,2,3,4,5,6]
     
    # 讲列表转换为数组
    b = np.array(a)
     
    # Numpy查看数组属性
    print(b.size)
    #6
     
    # 数组形状
    print(b.shape)
    # (6,)
     
    # 数组维度
    print(b.ndim)
    # 1
     
    # 数组元素类型
    print(b.dtype)
    # int32

    ones函数

    返回特定大小,以1填充的新数组

    zeros函数

    返回特定大小,以0填充的新数组。

    tolist()函数

    tolost()函数用于把一个矩阵转化为list列表

    np.unique()的用法

    该函数是去除数组中的重复数字,并进行排序之后输出

    np.argsort()的用法

    argsort()函数返回的是数组值从小到达的索引值

    >>> x = np.array([3, 1, 2])

    >>> np.argsort(x) #按升序排列
    array([1, 2, 3])
    >>> np.argsort(-x) #按降序排列
    array([3, 2, 1])
     

    切片和索引:

    import numpy as np

     
    a = np.arange(10)
    print(a)
    # [0 1 2 3 4 5 6 7 8 9]
    s = slice(2,7,2)
    print(s)
    # slice(2, 7, 2)
    print(a[s])
    # [2 4 6]
     
    b = a[2:7:2]
    print(b)
    # [2 4 6]
     
    # 对单个元素进行切片
    b = a[5]
    print(b)
    # 5
     
    # 对始于索引的元素进行切片
    print(a[2:])
    # [2 3 4 5 6 7 8 9]
     
    # 对索引之间的元素进行切片
    print(a[2:5])
    # [2 3 4]
     
     
    # 二维数组
    # 最开始的数组
    import numpy as np
    a = np.array([[1,2,3],[3,4,5],[4,5,6]])
    print('我们的数组是:')
    print(a)
    print (' ')
    # 这会返回第二列元素的数组:
    print ('第二列的元素是:')
    print(a[...,1])
    print(' ')
    # 现在我们从第二行切片所有元素:
    print ('第二行的元素是:')
    print(a[1,...])
    print( ' ')
    # 现在我们从第二列向后切片所有元素:
    print ('第二列及其剩余元素是:')
    print(a[...,1:])
    '''
    我们的数组是:
    [[1 2 3]
     [3 4 5]
     [4 5 6]]
     
     
    第二列的元素是:
    [2 4 5]
     
     
    第二行的元素是:
    [3 4 5]
     
     
    第二列及其剩余元素是:
    [[2 3]
     [4 5]
     [5 6]]'''
  • 相关阅读:
    JDBC batch批处理Statement executeBatch 具体解释
    NGUI字体贴图压缩以及相关Shader解读
    埃博拉患者的死亡经历
    Android URI简单介绍
    【安卓笔记】通过发送特定的短信远程控制手机
    InstallShield12豪华版破解版下载|InstallShield下载|软件打包工具
    求平方根C++
    监听手机录音
    My安装EclipseJS代码提示(Spket插件)
    四个好看的CSS样式表格
  • 原文地址:https://www.cnblogs.com/xuezhihao/p/11339389.html
Copyright © 2020-2023  润新知