美文网首页
[python][科学计算][numpy]使用指南1-属性

[python][科学计算][numpy]使用指南1-属性

作者: jiedawang | 来源:发表于2019-02-23 01:59 被阅读0次

    最后一次更新日期: 2019/3/9

    NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象(ndarray)和用于处理数组的例程集合组成的库。
    使用NumPy,开发人员可以执行以下操作:

    • 数组的算数和逻辑运算。
    • 傅立叶变换和用于图形操作的例程。
    • 与线性代数有关的操作。 NumPy 拥有线性代数和随机数生成的内置函数。

    使用前先导入模块:
    import numpy as np

    1. 数据类型

    ndarray.dtype

    numpy常用数据类型
    dtype type 类型名 说明
    np.dtype('bool') np.bool_ 布尔类型 True or False
    np.dtype('int8' | 'i1' | 'b') np.int8 8位整数(字节) -2^7 to 2^7-1
    np.dtype('int16' | 'i2') np.int16 16位整数 -2^15 to 2^15-1
    np.dtype('int32' | 'i4' | 'int' | 'i') np.int32 32位整数 -2^31 to 2^31-1
    np.dtype('int64' | 'i8') np.int64 64位整数 -2^63 to 2^63-1
    np.dtype('uint8' | 'u1' | 'B') np.uint8 8位无符号整数 0 to 2^8-1
    np.dtype('uint16' | 'u2') np.uint16 16位无符号整数 0 to 2^16-1
    np.dtype('uint32' | 'u4' | 'uint') np.uint32 32位无符号整数 0 to 2^32-1
    np.dtype('uint64' | 'u8') np.uint64 64位无符号整数 0 to 2^64-1
    np.dtype('float16' | 'f2') np.float16 半精度浮点数 1符号位+5指数位+10尾数位
    np.dtype('float32' | 'f4' | 'f') np.float32 单精度浮点数 1符号位+8指数位+23尾数位
    np.dtype('float64' | 'f8' | 'float' | 'd') np.float64 双精度浮点数 1符号位+11指数位+52尾数位
    np.dtype('complex64' | 'c8') np.complex64 64位复数 双32位浮点数(实部+虚部)
    np.dtype('complex128' | 'complex' | 'c16') np.complex128 128位复数 双64位浮点数(实部+虚部)
    np.dtype('object' | 'O') object 对象 可用于存储引用类型
    np.dtype('string_' | 'S' | 'S1' | 'S2' ...) np.bytes_ 定长字符串 需要声明长度
    np.dtype('unicode' | 'U' | 'U1' | 'U2' ...) np.str_ 定长Unicode字符串 需要声明长度
    np.dtype('datetime64' | 'M') np.datetime64 日期时间 可指定日期单位

    注:同一种dtype可以通过多种字符串标识去声明的,见 | 分割的多项。
    python的基本数据类型可被numpy识别,转换为对应类别下的默认类型,int对应np.int32float对应np.float64complex对应np.complex128

    dtype与type的转换

    获取dtype的type:dtype.type
    通过type创建dtype:dtype(type)

    dtype与type可以直接进行比较

    np.dtype('int')==np.int32

    dtype的字节顺序

    np.dtype('<i8')

    字节顺序是通过对数据类型预先设定"<"或">"来决定的。"<"意味着小端法(最小值存储在最小的地址,即低位组放在最前面)。">"意味着大端法(最重要的字节存储在最小的地址,即高位组放在最前面)。一般情况下采用默认设置即可。

    2. 元素个数

    ndarray.size

    3. 元素的子节大小

    ndarray.itemsize

    由数据类型决定,每8位为1字节。

    4. 总字节数

    ndarray.nbytes

    由size和itemsize计算得到。

    5. 维数

    ndarray.ndim

    ndarray的每一个维度被描述为轴(axis),维数即轴的个数,轴的编号从0开始。

    6. 形状

    ndarray.shape

    tuple类型,每一位对应到每个轴,例如0轴方向长为10个元素,1轴方向长为5个元素的数组形状为(10,5)

    7. 内存布局

    numpy有两种数据存储的方式,一种是C-order,即行序优先,另一种是Fortran-order,即列序优先,未显式指定时默认C-order。由于内部的优化机制,多数情况下两者在使用时没有明显区别,一般不需要更改默认设置。
    但在使用诸如迭代器之类的方法时,可通过order参数指定元素访问顺序,其中'C'指代C-order,'F'指代F-order。

    相关文章

      网友评论

          本文标题:[python][科学计算][numpy]使用指南1-属性

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