zoukankan      html  css  js  c++  java
  • Python科学计算基础包-Numpy

    一、Numpy概念


    Numpy(Numerical Python的简称)是Python科学计算的基础包。它提供了以下功能:

    1. 快速高效的多维数组对象ndarray。
    2. 用于对数组执行元素级计算以及直接对数组执行数学运算的函数。
    3. 用于读写硬盘上基于数组的数据集的工具。
    4. 线性代数运算、傅里叶变换,以及随机数生成。
    5. 用于将C、C++、Fortran代码集成到Python的工具。

    除了为Python提供快速的数组处理能力,Numpy在数据分析方面还有另外一个主要作用,即作为在算法之间传递数据的容器。对于数值型数据,Numpy数组在存储和处理数据时要比内置的Python数据结构高效的多。此外,由低级语言(比如C和Fortran)编写的库可以直接操作Numpy数组中的数据,无需进行任何数据复制工作。

    二、Numpy的突出优势


    与Python的基本数据类型相比,其具有以下突出优势: 

    1. 提供功能更强大的高维数组(N-dimensional)对象 
    2. 强大的广播功能(broadcasting),便于矢量化数组操作(直接对数组进行数据处理,而不需要编写循环) 
    3. 集成了 C/C++ 以及 Fortran代码编写的工具 
    4. 包含常用的线性代数、傅里叶变换,以及随机数生成 
    5. 提供易用的C API,可以将数据传递到使用低级语言编写的外部库,也可以使外部库返回NumPy数组数据到Python 
    6. 通用的数组算法,例如:sorting,unique和set等操作 

    NumPy提供了两种基本的对象:ndarray(N-dimensional array object)和ufunc(universal function object)。ndarray用来存储单一数据类型的多维数组,ufunc是对数组进行处理的函数。

     

    三、ndarray对象

    Numpy的核心是ndarray对象,它封装了同质数据类型的n维数组,与python序列有以下区别:

    ndarray在创建时有固定大小:不同于python中的列表,更改ndarray的大小将创建一个新的数组并删除原始数据 ndarray中的元素有相同的数据类型 ndarray便于对大量数据进行高级数学操作:通常会比python内置序列更高效也更简单 越来越多的基于python的科学和数学软件使用ndarray数组:只知道python的内置序列类型是不够的,还需要知道如何使用ndaray数组

    ndarray数据类型

    Numpy支持比Python更多种类的数值类型,参见:数据类型

    numpy数据类型python类型 描述
    bool_ bool 布尔(True或False),存储为一个字节
    int_ int 默认整数类型(与C long相同;通常为int64或int32)
    intc   与C int(通常为int32或int64)相同
    intp   用于索引的整数(与C ssize_t相同;通常为int32或int64)
    int8   字节(-128到127)
    int16   整数(-32768到32767)
    int32   整数(-2147483648至2147483647)
    int64   整数(-9223372036854775808至9223372036854775807)
    uint8   无符号整数(0到255)
    uint16   无符号整数(0到65535)
    uint32   无符号整数(0至4294967295)
    uint64   无符号整数(0至18446744073709551615)
    float_ float float64的简写。
    float16   半精度浮点:符号位,5位指数,10位尾数
    float32   单精度浮点:符号位,8位指数,23位尾数
    float64   双精度浮点:符号位,11位指数,52位尾数
    complex_ complex complex128的简写。
    complex64   复数,由两个32位浮点(实数和虚数分量)
    complex128   复数,由两个64位浮点(实数和虚数分量)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 作为类型名称设置数组中元素的类型,为了向后兼容,也可以使用float或字符串'float'
    x = np.array([1,2,3],dtype=np.float)
    print x
     
    # 查看数据类型
    print x.dtype
     
    # 作为单值类型转化函数
    print np.int32(1.3)
     
    # 转换数组的类型,会产生新的副本
    print x.astype(np.int)

    结果:

    1
    2
    3
    4
    [ 123.]
    float64
    1
    [1 2 3]

     

    感谢阅读上海尚学堂文章,获取更多内容或支持请点击上海python培训

  • 相关阅读:
    CAS 认证
    最近邻规则分类(k-Nearest Neighbor )机器学习算法python实现
    scikit-learn决策树的python实现以及作图
    module object has no attribute dumps的解决方法
    最新Flume1.7 自定义 MongodbSink 结合TAILDIR Sources的使用
    数据探索中的贡献度分析
    python logging模块按天滚动简单程序
    Flume性能测试报告(翻译Flume官方wiki报告)
    python apsheduler cron 参数解析
    python pyspark入门篇
  • 原文地址:https://www.cnblogs.com/shsxt/p/8611055.html
Copyright © 2011-2022 走看看