zoukankan      html  css  js  c++  java
  • Python基础 — NumPy

    NumPy--简介

     Numpy(Numerical Python的简称)是一个由多维数组对象和用于处理数组的例程集合组成的库。
     Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库!

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

    NumPy的安装

    直接安装
            在cmd中进入到  python的安装目录下的scripts文件夹中,执行下面的命令:

    pip install numpy

    离线安装

            1、打开网址https://pypi.org/project/numpy/,找到安装的python版本对应的numpy版本。


             2、将numpy下载到  python的安装目录下的scripts文件夹中;
            3、然后在cmd中执行以下命令:

    pip install numpy-1.14.5-cp36-none-win_amd64.whl

    ndarray多维数组

    简介
            NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。
            ndarray是一个通用的同构数据容器,也就是说,其中的所有元素必须是相同类型的。
            每个数组都有一个shape(一个表示各维度大小的元组)和一个dtype(一个用于说明数组数据类型的对象)

    date.shape
    data.dtype

    创建ndarray

            创建数组最简单的办法就是使用array函数。它接受一切序列的对象(包括其他的数组),然后产生一个新的含有传入数据的NumPy数组。
            嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组。

    函数描述
    array将输入数据(列表、元组、数据或其他序列类型)转换为ndarray;默认直接复制输入数据;
    asarray将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制;
    arange类似内置range,但返回的是一个ndarray而不是列表;
        ones、ones_like

    前者根据指定的形状和dtype创建一个全1数组,后者以另一个数组为参数,并创建一个全1数组;

       zeros、zeros_like类似于ones和ones_like,产生的是全0数组;
      empty、empty_like创建新数组,只分配内存空间但不填充任何值;
    eye、identity创建一个正方的N * N 单位矩阵(对角线为1,其他为0);

    实现代

    import numpy as np
    data1 = [6,7.5,8,0,1]  #创建列表
    arr1 = np.array(data1) #转换为数组
    print(arr1) 
    print(arr1.dtype) #数据类型保存在dtype对象中
    
    data2 = [[1,2,3,4],[5,6,7,8]] #创建嵌套序列(由等长列表组成的列表)
    arr2 = np.array(data2) #转换为多维数组
    print(arr2)
    print(arr1.dtype)
    print(arr1.shape)
    
    print(np.zeros(10)) #创建指定长度(10)的全0数组
    print(np.ones(2,4)) #创建指定长度的(2行4列二维)的全1数组
    print(np.empty((2, 3, 2)))#创建指定长度的(2行3列2层的三维)的随机数数组

    ndarray的数据类型

            dtype(数据类型)是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息。
            dtype是NumPy如此强大和灵活的原因之一。多数情况下,它们直接映射到相应的机器表示,这使得“读写磁盘上的二进制数据流”以及“集成低级语言代码(如C、Fortran)”等工作变得更加简单。
            数值型dtype的命名方式相同:一个类型名(如float或int),后面跟一个用于表示各元素位长的数字。
            标准的双精度浮点值(即Python中的float对象)需要占用8字节(即64位)。因此,该类型在NumPy中就记作float64。
            用data.dtype()来显示数据类型

    下图列示了NumPy所支持的全部数据类型:
    类型描述
    bool用一位存储的布尔类型(值为TRUE或FALSE)
    inti由所在平台决定其精度的整数(一般为int32或int64)
    int8整数,范围为  -128 至 127
    int16整数,范围为  -32 768 至 32 767
    int32整数,范围为  -231 至 231 - 1
    int64整数,范围为  -263 至 263 - 1
    uint8无符号整数,范围为 0 至 255
    uint16无符号整数,范围为 0 至 65 535
    uint32无符号整数,范围为 0 至232 - 1
    uint64无符号整数,范围为 0至 264 - 1
    float16半精度浮点数(16位):其中用1位表示正负号,5位表示指数,10位表示尾数
    float32单精度浮点数(32位):其中用1位表示正负号,8位表示指数,23位表示尾数
    float64或float双精度浮点数(64位):其中用1位表示正负号,11位表示指数,52位表示尾数
    complex64复数,分别用两个32位浮点数表示实部和虚部
    complex128或complex复数,分别用两个64位浮点数表示实部和虚部


  • 相关阅读:
    asp.net c#中去掉最后一个字符和去掉第一个字母
    两个div并排
    VS.Net2005中使用本地化功能实现多语言的切换
    gridview嵌套DropDownList選定值[转]
    C# 获取系统时间
    NERDTree,好用的文件浏览器
    通过$.browser来判断浏览器
    vim 智能提示
    让vim显示函数列表
    vim中文乱码解决方法
  • 原文地址:https://www.cnblogs.com/lsqin/p/9342936.html
Copyright © 2011-2022 走看看