• Python 学习之 NumPy


    NumPy(Numerical Python的简称) 是高性能科学计算和数据分析的基础包,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数,其部分基本功能如下:

    ndarry,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数值
    
    用于对整组数据进行快速运算的标准数学函数(无需编写循环)
    
    用于读写磁盘数据的工具以及用于操作内存映射文件的工具
    
    线性代数、随机生成以及傅立叶变化功能
    
    用于集成C、C++、Fortran等语言编写的代码工具
    

      

    In [9]: import numpy as np
    
    In [10]: print np.version.version
    1.8.2
    

      

    In [16]: data1 = [2, 3, 5, 7, 1024]
    
    In [17]: arr1 = np.array(data1)
    
    In [18]: arr1
    Out[18]: array([   2,    3,    5,    7, 1024])
    
    In [19]: data2 = ([1,2,3,4],[5,6,7,8])
    
    In [20]: arr2 = np.array(data2)
    
    In [21]: arr2
    Out[21]: 
    array([[1, 2, 3, 4],
           [5, 6, 7, 8]])
    
    In [22]: arr2.ndim
    Out[22]: 2
    
    In [23]: arr2.shape
    Out[23]: (2, 4)
    

      除非显式说明,否则np.array都会尝试为新建的这个数组推断出一个较为适合的数据类型,数据类型保存在一个特殊的dtype对象中,

    In [25]: arr1.dtype
    Out[25]: dtype('int64')
    
    In [26]: arr2.dtype
    Out[26]: dtype('int64')
    

      可以通过nadarry的astype方法显式地转化其他dtype

    In [45]: evilxr = np.array([6,7,2,3,8,6])
    
    In [46]: evilxr.dtype
    Out[46]: dtype('int64')
    
    In [47]: folat_evilxr = evilxr.astype(np.float)
    
    In [48]: folat_evilxr.dtype
    Out[48]: dtype('float64')
    

      如果将整数转换为浮点数,则小数部分将会被截断(而不是四舍五入)

    In [57]: evilxr = np.array([6.1, 7.5, 2.9, 3.2, 8.9, 6.123])
    
    In [58]: evilxr.dtype
    Out[58]: dtype('float64')
    
    In [59]: int_evilxr = evilxr.astype(np.int32)
    
    In [60]: int_evilxr
    Out[60]: array([6, 7, 2, 3, 8, 6], dtype=int32)
    

      

      

    zeros和ones也可以分别创建指定长度或者形状的全0或全1数组,empty可以创建一个没有任何具体值的数组。

    In [30]: np.zeros(2)
    Out[30]: array([ 0.,  0.])
    
    In [31]: np.zeros((2,3))
    Out[31]: 
    array([[ 0.,  0.,  0.],
           [ 0.,  0.,  0.]])
    
    In [32]: np.empty((2,3,2))
    Out[32]: 
    array([[[  2.15749693e-316,   0.00000000e+000],
            [  0.00000000e+000,   0.00000000e+000],
            [  0.00000000e+000,   0.00000000e+000]],
    
           [[  0.00000000e+000,   0.00000000e+000],
            [  0.00000000e+000,   0.00000000e+000],
            [  0.00000000e+000,   0.00000000e+000]]])
    

      arange是Python内置函数range的数组版

    In [36]: np.arange(8)
    Out[36]: array([0, 1, 2, 3, 4, 5, 6, 7])
    

      数组和标量之间的运算

    In [2]: data1 = [8, 9, 5, 9]
    
    In [3]: arr1 = np.array(data1)
    
    In [7]: import numpy as np
    
    In [8]: arr1 = np.array(data1)
    
    In [9]: arr1
    Out[9]: array([8, 9, 5, 9])
    
    In [10]: arr1 * arr1
    Out[10]: array([64, 81, 25, 81])
    
    In [11]: arr1 - arr1
    Out[11]: array([0, 0, 0, 0])
    
    In [12]: arr1 +1
    Out[12]: array([ 9, 10,  6, 10])
    

      不同数组之间的运算,也叫广播

  • 相关阅读:
    python 字符串内建函数之开头与结尾判断
    python 字符串内建函数之查找、替换
    python 字符串内建函数之大小写
    python 字符串切片
    python for循环
    python if语句
    python input( )
    python 变量命名规则
    DllMain
    静态库lib和动态dll的区别及使用方法
  • 原文地址:https://www.cnblogs.com/evilxr/p/4022592.html
Copyright © 2020-2023  润新知