美文网首页
numpy之-概要,数据,类型和示例

numpy之-概要,数据,类型和示例

作者: 望月明_e56e | 来源:发表于2019-07-16 18:06 被阅读0次

    学习numpy

    前言

    大学学习一直使用matlab处理矩阵,行列式运算,功能强大,但是这么多年基本忘光了。现在推荐算法,数据处理,机器学习,人工智能,数据分析处理在工作中的工作需求越来越大,目前很多有这些方面的需求,需要把相关的东西再拾回来。最近发现numpy,matplotlab,pandas,scipy可以完全替代matlab,而且因为各个模块免费的,网络教程相当丰富既然各个条件都满足,所以决定静下心来好好的复习,学习一下这些东西。首先学习numpy,一周左右弄清所有的概念和使用,会有4-6篇文章。


    numpy相关说明:

    NumPy 是一个运行速度非常快的数学库,主要用于数组计算。支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,包含:

    1. 一个强大的N维数组对象 ndarray
    2. 广播功能函数
    3. 整合 C/C++/Fortran 代码的工具
    4. 线性代数、傅里叶变换、随机数生成等功能
    numpy使用pip安装
    1, 目前最新版都已经内置pip模块
    python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
       
    
    2, 检测是否安装成功
    >>> import numpy as np
    >>> np.__version__
    '1.16.3'
    
    3, NumPy Ndarray 对象

    ndarray是一个N维,相同类型的数据的组合,每个元素占用相同类型的内存空间,并且以0开始索引。
    ndarray 内部由以下内容组成:

    1. 一个指向数据(内存或内存映射文件中的一块数据)的指针。
    2. 数据类型或 dtype,描述在数组中的固定大小值的格子。
    3. 一个表示数组形状(shape)的元组,表示各维度大小的元组。
    4. 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。
    4, 创建ndarray对象

    下面通过实例理解:

    • 通过列表创建一维ndarray对象:
    >>> a = [1,2,3,4]
    >>> dt = np.array(a)
    >>> print(dt)
    [1 2 3 4]
    
    • 通过列表创建二维ndarray对象:
    >>> a = [[1,2,3],[4,5,6]]
    >>> dt = np.array(a)
    >>> print(dt)
    [[1 2 3]
     [4 5 6]]
    
    • 通过列表创建多维ndarray对象:
    >>> a = [[[1,2,3]],[[4,5,6]]]
    >>> dt = np.array(a)
    >>> print(dt)
    [[[1 2 3]]
    
     [[4 5 6]]]
    
    带有类型的ndarray对象
    • 通过列表创建带有dtype=float的ndarray对象:
    >>> a = [[1,2,3],[4,5,6]]
    >>> dt = np.array(a,dtype='float')
    >>> 
    >>> print(dt)
    [[1. 2. 3.]
     [4. 5. 6.]]
    
    • 通过列表创建带有dtype=float的ndarray对象:
    >>> a = [[1,2,3],[4,5,6]]
    >>> dt = np.array(a,dtype='complex')
    >>> print(dt)
    [[1.+0.j 2.+0.j 3.+0.j]
     [4.+0.j 5.+0.j 6.+0.j]]
    >>> 
    
    
    下面介绍一下上面说的dtype类型

    dtype类型和Python中的数据类型一样,用来标识变量类型,不过numpy中的数据类型远比python类型要复杂,我们本章只做简单的介绍,后面会有单独的章节详细介绍。

    • 整数类型:(分为有符号和无符号类型)
    类型名 说明
    int_ 默认类型 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_ float64的简写类型
    float16 半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位
    float32 半精度浮点数,包括:1 个符号位,8 个指数位,32 个尾数位
    float64 半精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位
    • 复数类型
    类型名 说明
    complex_ complex128的简写类型,即 128 位复数
    complex64 表示双 32 位浮点数(实数部分和虚数部分)
    complex128 表示双 64 位浮点数(实数部分和虚数部分)

    除了数据类型和numpy数组还包括其他属性:

    属性 说明
    ndim 数组维度
    size 数组元素个数
    dtype 数组元素类型
    itemsize 每个元素大小,占用的字节数
    shape 数组的行列个数
    nbytes 属性中所有的元素占用的字节数,不计算数组的开销,数组实际占用空间会大一些
    type(dt) 数组类型

    eg:

    type(dt)
    dim = dt.ndim
    print(dim)
    dtype = dt.dtype
    print(dtype)
    size = dt.size
    print(size)
    item = dt.itemsize
    print(item)
    shape = dt.shape
    print(shape)
    
    

    待续。。。。

    相关文章

      网友评论

          本文标题:numpy之-概要,数据,类型和示例

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