• Numpy-01(安装、Ndarray对象介绍创建及使用)


    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

    NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:

    • 一个强大的N维数组对象 ndarray
    • 广播功能函数
    • 整合 C/C++/Fortran 代码的工具
    • 线性代数、傅里叶变换、随机数生成等功能

     在日常中,NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

    目录

    1. Numpy的安装

    2. Ndarray 对象

    2.1 ndarray的介绍及数据结构

    2.2 创建ndarray

    3. 数据类型

    3.1 numpy常见数据类型

    3.2 数据类型对象(dtype) 

     4. 数组属性

    4.1 numpy中常见的数组属性

    4.2 属性的使用

    4.2.1 ndarray.ndim

    4.2.2  ndarray.shape

    4.2.3 ndarray.itemsize

     5. 创建数组

    5.1 numpy.empty

    5.2 numpy.zeros

    5.3 numpy.ones

    6. 从已有的数组创建数组

    6.1 numpy.asarray

    6.2 numpy.frombuffer

    7.  从数值范围创建数组

    7.1 numpy.arange

    7.2 numpy.linspace

    7.3 numpy.logspace


    1. Numpy的安装

     在大部分数据分析或机器学习的项目中,用户都会选择使用anaconda管理python环境和第三方库,在anaconda也集成有numpy及其相关依赖库供用户使用。anaconda安装步骤:
    python基础-1(开发环境安装及配置anaconda 5.3.1+py3.7)_HM-hhxx!的博客-CSDN博客python3.7+anaconda下载安装及环境设置!https://blog.csdn.net/damadashen/article/details/126784638?spm=1001.2014.3001.5501而没有使用anaconda的用户可以使用pip安装numpy:

    pip install numpy

     测试是否安装成功:

    1. import numpy as np
    2. a = np.array([2,3,4])
    3. print (a)
    4. #输出结果
    5. #[2 3 4]

    2. Ndarray 对象

    2.1 ndarray的介绍及数据结构

    NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。并且ndarray对象是用于存放同类型元素的多维数组,每个元素在内存中都具有相同存储大小的区域。

    ndarray 内部由以下内容组成:

    • 一个指向数据(内存或内存映射文件中的一块数据)的指针。

    • 数据类型或 dtype,描述在数组中的固定大小值的格子。

    • 一个表示数组形状(shape)的元组,表示各维度大小的元组。

    • 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。

    例如一个三行三列的数组:

     数据结构如下:

     2.2 创建ndarray

    创建一个 ndarray 只需调用 NumPy 的 array 函数即可:

    numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

    其中:

    名称描述
    object数组或嵌套的数列
    dtype数组元素的数据类型,可选
    copy对象是否需要复制,可选
    order创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
    subok默认返回一个与基类类型一致的数组
    ndmin指定生成数组的最小维度

    3. 数据类型

     3.1 numpy常见数据类型

    名称描述
    bool_布尔型数据类型(True 或者 False)
    int_默认的整数类型(类似于 C 语言中的 long,int32 或 int64)
    intc与 C 的 int 类型一样,一般是 int32 或 int 64
    intp用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)
    int数据类型中,如下也可以使用'i1', 'i2','i4','i8' 代替
    int8(i1)

    字节(-128 to 127)

    int16(i2)整数(-32768 to 32767)
    int32(i4)整数(-2147483648 to 2147483647)
    int64(i8)整数(-9223372036854775808 to 9223372036854775807)
    uint8无符号整数(0 to 255)
    uint16无符号整数(0 to 65535)
    uint32无符号整数(0 to 4294967295)
    uint64无符号整数(0 to 18446744073709551615)
    float_float64 类型的简写
    float16半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位
    float32单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位
    float64双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位
    complex_complex128 类型的简写,即 128 位复数
    complex64复数,表示双 32 位浮点数(实数部分和虚数部分)
    complex128复数,表示双 64 位浮点数(实数部分和虚数部分)

    3.2 数据类型对象(dtype) 

    数据类型对象(numpy.dtype 类的实例)用来描述与数组对应的内存区域是如何使用,它描述了数据的以下几个方面::

    • 数据的类型(整数,浮点数或者 Python 对象)
    • 数据的大小(例如, 整数使用多少个字节存储)
    • 数据的字节顺序(小端法或大端法)
    • 在结构化类型的情况下,字段的名称、每个字段的数据类型和每个字段所取的内存块的部分
    • 如果数据类型是子数组,那么它的形状和数据类型是什么。

     dtype 对象是使用以下语法构造的:

    numpy.dtype(object, align, copy)

    其中

    • object - 要转换为的数据类型对象
    • align - 如果为 true,填充字段使其类似 C 的结构体。
    • copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用

     示例:

     

     每个内建类型都有一个唯一定义它的字符代码,如下:

    字符对应类型
    b布尔型
    i(有符号) 整型
    u无符号整型 integer
    f浮点型
    c复数浮点型
    mtimedelta(时间间隔)
    Mdatetime(日期时间)
    O(Python) 对象
    S, a(byte-)字符串
    UUnicode
    V原始数据 (void)

     4. 数组属性

    4.1 numpy中常见的数组属性

    属性说明
    ndarray.ndim秩,即轴的数量或维度的数量
    ndarray.shape数组的维度,对于矩阵,n 行 m 列
    ndarray.size数组元素的总个数,相当于 .shape 中 n*m 的值
    ndarray.dtypendarray 对象的元素类型
    ndarray.itemsizendarray 对象中每个元素的大小,以字节为单位
    ndarray.flagsndarray 对象的内存信息
    ndarray.realndarray元素的实部
    ndarray.imagndarray 元素的虚部
    ndarray.data包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。

    4.2 属性的使用

    4.2.1 ndarray.ndim

    ndarray.ndim 用于返回数组的维数,等于秩。

    4.2.2  ndarray.shape

    ndarray.shape 表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)。比如,一个二维数组,其维度表示"行数"和"列数"。

    ndarray.shape 也可以用于调整数组大小。

     numpy中也提供reshape方法用于调整数组大小:

     4.2.3 ndarray.itemsize

    ndarray.itemsize 以字节的形式返回数组中每一个元素的大小。

    例如,一个元素类型为 float64 的数组 itemsize 属性值为 8(float64 占用 64 个 bits,每个字节长度为 8,所以 64/8,占用 8 个字节)

     5. 创建数组

    在numpy中,除了使用底层的ndarray构造器创建数组外,还有其他方式进行创造。

    5.1 numpy.empty

    numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:

    numpy.empty(shape, dtype = float, order = 'C')

     其中:

    shape数组形状
    dtype数据类型,可选
    order有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

    示例:

     5.2 numpy.zeros

    创建指定大小的数组,数组元素以 0 来填充:

    numpy.zeros(shape, dtype = float, order = 'C')

    示例: 

    或: 

     

     5.3 numpy.ones

    创建指定形状的数组,数组元素以 1 来填充:

    numpy.ones(shape, dtype = None, order = 'C')

    示例:

    6. 从已有的数组创建数组

    6.1 numpy.asarray

    numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个。

    numpy.asarray(a, dtype = None, order = None)
    a任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组
    dtype数据类型,可选
    order可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

    示例:

     6.2 numpy.frombuffer

    numpy.frombuffer 用于实现动态数组。

    numpy.frombuffer 接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象。

    numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)
    buffer可以是任意对象,会以流的形式读入。
    dtype返回数组的数据类型,可选
    count读取的数据数量,默认为-1,读取所有数据。
    offset读取的起始位置,默认为0。

    buffer 是字符串的时候,Python3 默认 str 是 Unicode 类型,所以要转成 bytestring 在原 str 前加上 b。

     示例:

    7.  从数值范围创建数组

    7.1 numpy.arange

    numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。函数格式如下:

    numpy.arange(start, stop, step, dtype)
    start起始值,默认为0
    stop终止值(不包含)
    step步长,默认为1
    dtype返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。

    例如:生成一个0-10,步长为2的数组(当初始值为0时可以省略,当步长为一时也可省略)。

     7.2 numpy.linspace

     numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:

    np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
    start序列的起始值
    stop序列的终止值,如果endpointtrue,该值包含于数列中
    num要生成的等步长的样本数量,默认为50
    endpoint该值为 true 时,数列中包含stop值,反之不包含,默认是True。
    retstep如果为 True 时,生成的数组中会显示间距,反之不显示。
    dtypendarray 的数据类型

    示例:从1-10的步长为一的int类型等差数列如下

     7.3 numpy.logspace

     numpy.logspace 函数用于创建一个于等比数列。格式如下:

    np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
    start序列的起始值为:base ** start
    stop序列的终止值为:base ** stop。如果endpointtrue,该值包含于数列中
    num要生成的等步长的样本数量,默认为50
    endpoint该值为 true 时,数列中中包含stop值,反之不包含,默认是True。
    base对数 log 的底数。
    dtypendarray 的数据类型

     示例:对数底数为2时,从0-9的每一个数值

  • 相关阅读:
    基于springboot+vue网上图书商城54
    四川网页设计公司哪家好?成都网站制作公司哪家好?
    【NOI模拟赛】背包(优先队列,贪心)
    【ManageEngine卓豪】移动终端管理解决方案,助力中州航空产业数字化转型
    【Redis】如何保证缓存和数据库的一致性
    人工神经网络 人工智能,人工智能神经网络技术
    Pulsar 各个Shedder分析及新的Shedder -- AvgShedder
    【数据结构与算法】排序(上篇)
    LVS的简单介绍
    返校季:浅谈海外市场仅次于圣诞节的第二大购物旺季
  • 原文地址:https://blog.csdn.net/damadashen/article/details/126845263