• 【Python numpy】创建Ndarray数组对象


    文章目录


    前言

    NumPy(Numerical Python)是Python科学计算中一个重要的库,它提供了高性能的多维数组对象(ndarray)和丰富的数学函数,使得科学计算和数据分析更加便捷和高效。NumPy的核心是ndarray,这是一个多维数组对象,用于存储和操作大量数据。本文将介绍如何创建ndarray数组对象,为你提供一个入门到NumPy的基础。


    一、numpy.array()函数

    1.1 函数基本介绍

    NumPy的numpy.array函数用于创建一个新的NumPy数组对象,函数的原型如下:

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

    参数说明:

    object:可以是Python列表、元组、其他序列对象,或者其他支持数组接口的对象。这是创建数组的输入数据。

    dtype(可选):指定数组的数据类型,如int, float, complex等。默认情况下,NumPy会根据输入数据自动确定数据类型。

    copy(可选):布尔值,表示是否复制输入数据。默认为True,表示复制数据;如果设为False,则数组将引用输入数据。

    order(可选):指定数组元素在内存中的排列顺序,可选值为’C’(C风格,行主序)或’F’(Fortran风格,列主序)。

    subok(可选):布尔值,表示是否允许子类。如果为True,则返回一个与输入的子类相关的数组。默认为False。

    ndmin(可选):指定生成的数组的最小维度。如果设置为1或更大,将会生成至少具有指定维度数的数组。

    numpy.array函数的主要功能是将输入的数据对象转换为NumPy数组对象,这使得数据在NumPy中更容易进行处理、操作和分析。它可以根据提供的参数来指定数组的数据类型、是否复制数据等,以满足特定的需求。

    1.2 示例代码

    以下是使用不同参数形式的示例代码:

    创建一个包含整数的一维数组

    import numpy as np
    
    arr = np.array([1, 2, 3, 4, 5])
    
    • 1
    • 2
    • 3

    创建一个指定数据类型的一维数组

    import numpy as np
    
    arr_float = np.array([1.1, 2.2, 3.3], dtype=float)
    
    • 1
    • 2
    • 3

    创建一个多维数组

    import numpy as np
    
    matrix = np.array([[1, 2, 3], [4, 5, 6]])
    
    • 1
    • 2
    • 3

    创建一个具有最小维度要求的数组

    import numpy as np
    
    arr_ndmin = np.array([1, 2, 3], ndmin=2)
    
    • 1
    • 2
    • 3

    这些示例展示了如何使用numpy.array函数创建不同类型的NumPy数组,包括一维和多维数组,以及如何指定数据类型和最小维度。这个函数是NumPy中常用的函数之一,用于数据的初始化和转换。

    二、numpy.empty()函数

    2.1 empty()函数介绍

    numpy.empty函数用于创建一个指定形状的新NumPy数组,但不对数组元素进行初始化。函数的原型如下:

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

    参数说明:

    shape:一个整数或整数元组,指定了所需数组的形状,即数组的维度和大小。

    dtype(可选):指定数组的数据类型,例如int、float、complex等。默认为float。

    order(可选):指定数组元素在内存中的排列顺序,可选值为’C’(C风格,行主序)或’F’(Fortran风格,列主序)。默认为’C’。

    功能:

    numpy.empty函数用于创建一个新的NumPy数组,但不会初始化数组的元素。这意味着数组的元素将包含之前分配给它们的内存中的任何值,因此它们可能包含垃圾值。这对于需要快速创建具有特定形状的数组,但不需要立即初始化元素的情况非常有用。用户可以稍后手动或使用其他方法来初始化数组元素。

    2.2 示例代码

    以下是使用不同参数形式的示例代码:

    创建一个未初始化的一维数组

    import numpy as np
    
    arr = np.empty(5)
    
    • 1
    • 2
    • 3

    创建一个未初始化的二维数组

    import numpy as np
    
    matrix = np.empty((3, 4))
    
    • 1
    • 2
    • 3

    创建一个未初始化的具有指定数据类型的数组:

    import numpy as np
    
    arr_int = np.empty(4, dtype=int)
    
    • 1
    • 2
    • 3

    创建一个未初始化的列主序数组

    import numpy as np
    
    arr_fortran = np.empty(3, order='F')
    
    • 1
    • 2
    • 3

    这些示例演示了如何使用numpy.empty函数创建未初始化的NumPy数组,包括一维和多维数组,并如何指定数据类型和内存排列顺序。这对于需要快速创建大型数组的情况非常有用,而不必担心初始化元素的值。

    三、numpy.zeros()函数

    3.1 zeros函数介绍

    numpy.zeros函数用于创建一个指定形状的新NumPy数组,并将所有元素初始化为零。函数的原型如下:

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

    参数说明:

    shape:一个整数或整数元组,指定了所需数组的形状,即数组的维度和大小。

    dtype(可选):指定数组的数据类型,例如int、float、complex等。默认为float。

    order(可选):指定数组元素在内存中的排列顺序,可选值为’C’(C风格,行主序)或’F’(Fortran风格,列主序)。默认为’C’。

    功能:

    numpy.zeros函数用于创建一个新的NumPy数组,其元素被初始化为零。这对于需要快速创建一个具有特定形状的数组,其中所有元素的初始值都为零的情况非常有用。

    3.2 示例代码

    以下是使用不同参数形式的示例代码:

    创建一个一维的以零填充的数组

    import numpy as np
    
    arr = np.zeros(5)
    
    • 1
    • 2
    • 3

    创建一个二维的以零填充的数组:

    import numpy as np
    
    matrix = np.zeros((3, 4))
    
    • 1
    • 2
    • 3

    创建一个以整数类型填充的数组:

    import numpy as np
    
    arr_int = np.zeros(4, dtype=int)
    
    • 1
    • 2
    • 3

    创建一个以列主序(Fortran风格)填充的数组:

    import numpy as np
    
    arr_fortran = np.zeros(3, order='F')
    
    • 1
    • 2
    • 3

    这些示例演示了如何使用numpy.zeros函数创建以零填充的NumPy数组,包括一维和多维数组,并如何指定数据类型和内存排列顺序。这对于需要初始化所有元素为零的情况非常有用。

    四、numpy.ones()函数

    4.1 ones函数介绍

    numpy.ones函数用于创建一个指定形状的新NumPy数组,并将所有元素初始化为1、函数的原型如下:

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

    参数说明:

    shape:一个整数或整数元组,指定了所需数组的形状,即数组的维度和大小。

    dtype(可选):指定数组的数据类型,例如int、float、complex等。默认为None,表示数据类型为浮点数。

    order(可选):指定数组元素在内存中的排列顺序,可选值为’C’(C风格,行主序)或’F’(Fortran风格,列主序)。默认为’C’。

    功能:

    numpy.ones函数用于创建一个新的NumPy数组,其元素被初始化为1。这对于需要快速创建一个具有特定形状的数组,其中所有元素的初始值都为1的情况非常有用。

    4.2 示例代码

    以下是使用不同参数形式的示例代码:

    创建一个一维的以1填充的数组

    import numpy as np
    
    arr = np.ones(5)
    
    • 1
    • 2
    • 3

    创建一个二维的以1填充的数组

    import numpy as np
    
    matrix = np.ones((3, 4))
    
    • 1
    • 2
    • 3

    创建一个以整数类型填充的数组

    import numpy as np
    
    arr_int = np.ones(4, dtype=int)
    
    • 1
    • 2
    • 3

    创建一个以列主序(Fortran风格)填充的数组:

    import numpy as np
    
    arr_fortran = np.ones(3, order='F')
    
    • 1
    • 2
    • 3

    这些示例演示了如何使用numpy.ones函数创建以1填充的NumPy数组,包括一维和多维数组,并如何指定数据类型和内存排列顺序。这对于需要初始化所有元素为1的情况非常有用。

    五、numpy.full()函数

    numpy.full函数用于创建一个具有指定形状的新NumPy数组,并将所有元素初始化为指定的常数值。以下是函数的原型:

    numpy.full(shape, fill_value, dtype=None, order='C')
    
    • 1

    参数说明:

    shape:一个整数或整数元组,指定了所需数组的形状,即数组的维度和大小。

    fill_value:要填充到数组中的常数值。

    dtype(可选):指定数组的数据类型,例如int、float、complex等。默认为None,表示数据类型根据fill_value的类型进行推断。

    order(可选):指定数组元素在内存中的排列顺序,可选值为’C’(C风格,行主序)或’F’(Fortran风格,列主序)。默认为’C’。

    功能:

    numpy.full函数用于创建一个新的NumPy数组,其元素被初始化为指定的常数值。这对于需要快速创建一个具有特定形状的数组,并将所有元素初始化为相同的值的情况非常有用。

    5.2 示例代码

    以下是使用不同参数形式的示例代码:

    创建一个一维的以3.14填充的数组

    import numpy as np
    
    arr = np.full(5, 3.14)
    
    • 1
    • 2
    • 3

    创建一个二维的以7填充的数组

    import numpy as np
    
    matrix = np.full((3, 4), 7)
    
    • 1
    • 2
    • 3

    创建一个以整数类型填充的数组

    import numpy as np
    
    arr_int = np.full(4, 42, dtype=int)
    
    • 1
    • 2
    • 3

    创建一个以列主序(Fortran风格)填充的数组:

    import numpy as np
    
    arr_fortran = np.full(3, 2.718, order='F')
    
    • 1
    • 2
    • 3

    这些示例演示了如何使用numpy.full函数创建以指定常数值填充的NumPy数组,包括一维和多维数组,并如何指定数据类型和内存排列顺序。这对于需要初始化所有元素为指定值的情况非常有用。

    六、numpy.eye()函数

    6.1 eye函数介绍

    numpy.eye函数用于创建一个二维的单位矩阵(也称为单位阵或单位矩阵),它是一个方阵,所有的对角元素都为1,而非对角元素都为0。以下是函数的原型:

    numpy.eye(N, M=None, k=0, dtype=<class 'float'>, order='C')
    
    • 1

    参数说明:

    N:创建的单位矩阵的行数。
    M(可选):创建的单位矩阵的列数。如果不提供此参数,它将默认为N,创建一个方阵。
    k(可选):对角线的偏移量,用于创建非标准的单位矩阵。默认值为0,表示主对角线上的元素为1。
    dtype(可选):指定数组的数据类型,例如int、float、complex等。默认为float 类型。
    order(可选):指定数组元素在内存中的排列顺序,可选值为’C’(C风格,行主序)或’F’(Fortran风格,列主序)。默认为’C’。
    使用方法:

    功能:

    numpy.eye函数用于创建一个单位矩阵,这是一个非常常见的数学概念。单位矩阵是一个方阵,它在主对角线上的元素都为1,而在其他位置的元素都为0。单位矩阵在线性代数和矩阵运算中有广泛的应用,它通常用于表示单位矩阵操作,如线性变换和矩阵求逆。

    6.2 示例代码

    以下是使用不同参数形式的示例代码:

    创建一个3x3的单位矩阵

    import numpy as np
    
    identity_matrix = np.eye(3)
    
    • 1
    • 2
    • 3

    创建一个4x4的单位矩阵,但对角线上的元素偏移为1

    import numpy as np
    
    offset_matrix = np.eye(4, k=1)
    
    • 1
    • 2
    • 3

    创建一个3x4的单位矩阵

    import numpy as np
    
    custom_shape_matrix = np.eye(3, 4)
    
    • 1
    • 2
    • 3

    创建一个单位矩阵,数据类型为整数

    import numpy as np
    
    integer_matrix = np.eye(2, dtype=int)
    
    • 1
    • 2
    • 3

    这些示例演示了如何使用numpy.eye函数创建单位矩阵,以及如何控制单位矩阵的大小、对角线偏移、数据类型和内存排列顺序。

    七、numpy.arange()函数

    7.1 arange函数介绍

    numpy.arange函数用于创建一个等间隔的一维数组,可以指定起始值、终止值和步长。以下是函数的原型:

    numpy.arange([start, ]stop, [step, ]dtype=None)
    
    • 1

    参数说明:

    start(可选):起始值,表示生成的数组的起始元素。如果不提供此参数,将默认为0。
    stop:终止值,表示生成的数组中的元素不包括此值。
    step(可选):步长,表示相邻两个元素之间的差值。如果不提供此参数,将默认为1。
    dtype(可选):指定生成的数组的数据类型,例如int、float、complex等。默认情况下,它会根据输入参数来确定数据类型。
    使用方法:

    功能:

    numpy.arange函数用于创建一个包含等间隔值的一维数组。这个函数在科学计算、数值计算和数据分析中非常常见,可以用于生成一系列连续的数值,例如整数或浮点数,以便进行后续的计算和分析。

    7.2 示例代码

    以下是使用不同参数形式的示例代码:

    创建一个包含0到9的整数数组

    import numpy as np
    
    arr1 = np.arange(10)
    
    • 1
    • 2
    • 3

    创建一个包含2到10的整数数组,步长为2:

    import numpy as np
    
    arr2 = np.arange(2, 12, 2)
    
    • 1
    • 2
    • 3

    创建一个包含0.0到1.0的浮点数数组,步长为0.1

    import numpy as np
    
    arr3 = np.arange(0.0, 1.0, 0.1)
    
    • 1
    • 2
    • 3

    创建一个包含5到1的整数数组,步长为-1

    import numpy as np
    
    arr4 = np.arange(5, 0, -1)
    
    • 1
    • 2
    • 3

    这些示例演示了如何使用numpy.arange函数创建不同范围、步长和数据类型的一维

    八、numpy.frombuffer()函数

    8.1 函数介绍

    numpy.frombuffer函数用于从缓冲区中创建一个新的一维数组,它将缓冲区解释为一个指定数据类型的数组。以下是函数的原型:

    numpy.frombuffer(buffer, dtype=float, count=-1, offset=0)
    
    • 1

    参数说明:

    buffer:必选参数,表示输入的缓冲区。这可以是一个字节串(如bytes或bytearray),或者是一个可读取字节的对象(例如文件对象)。
    dtype:可选参数,表示要创建的数组的数据类型。默认为float。通常,您可以指定int、float、complex等数据类型。
    count:可选参数,表示要读取的字节数。默认值为-1,表示读取整个缓冲区。
    offset:可选参数,表示在缓冲区中的偏移量,从该偏移处开始读取字节。默认值为0。
    功能:

    numpy.frombuffer函数的功能是从给定的缓冲区中创建一个新的一维数组,该数组使用指定的数据类型进行解释。这可以用于将二进制数据转换为NumPy数组,以便进行进一步的数值计算和数据处理。

    8.2 示例代码

    以下是使用不同参数形式的示例代码:

    从字节串创建一个整数数组

    import numpy as np
    
    data = b'\x01\x02\x03\x04\x05'
    arr1 = np.frombuffer(data, dtype=int)
    
    • 1
    • 2
    • 3
    • 4

    从字节串创建一个浮点数数组,并指定读取前4个字节

    import numpy as np
    
    data = b'\x40\x49\x0f\xdb\x29\x5c\x8f\xc2'
    arr2 = np.frombuffer(data, dtype=float, count=2)
    
    • 1
    • 2
    • 3
    • 4

    从文件对象创建一个整数数组,从文件当前位置读取数据:

    import numpy as np
    
    with open('data.bin', 'rb') as file:
        arr3 = np.frombuffer(file.read(), dtype=int)
    
    • 1
    • 2
    • 3
    • 4

    这些示例演示了如何使用numpy.frombuffer函数从不同源(字节串、文件对象)创建不同数据类型的一维数组。

    九、numpy.linspace()函数

    9.1 函数介绍

    函数原型

    numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
    
    • 1

    参数说明
    start: 必选参数,表示序列的起始值。
    stop: 必选参数,表示序列的结束值。
    num: 可选参数,表示要生成的样本数。默认值为 50。
    endpoint: 可选参数,如果为True(默认值),则序列包括stop值,如果为False,序列不包括stop值。
    retstep: 可选参数,如果为True,将返回一个包含序列和步长的元组。
    dtype: 可选参数,表示输出数组的数据类型。如果未指定,则由输入数据类型推断。
    axis: 可选参数,表示在哪个轴上生成样本数据。默认为0,表示生成一维数组。

    功能
    numpy.linspace函数的功能是生成一个等间隔的一维数组,该数组包括在指定范围内均匀分布的样本数据点。可以用于在数学建模、数据可视化和科学计算中生成均匀间隔的数据点。

    9.2 示例代码

    以下是使用不同参数形式的示例代码:

    基本用法

    import numpy as np
    
    # 创建一个包含10个均匀分布的数据点的数组,从1到5
    arr1 = np.linspace(1, 5, num=10)
    
    • 1
    • 2
    • 3
    • 4

    不包括stop值的序列

    import numpy as np
    
    # 创建一个不包括5的均匀分布序列,从1到4
    arr2 = np.linspace(1, 5, num=10, endpoint=False)
    
    • 1
    • 2
    • 3
    • 4

    返回序列和步长的元组

    import numpy as np
    
    # 创建一个包含序列和步长的元组
    arr3, step = np.linspace(0, 10, num=11, retstep=True)
    
    • 1
    • 2
    • 3
    • 4

    指定数据类型

    import numpy as np
    
    # 创建一个整数数组,包括10个均匀分布的数据点,从1到5
    arr4 = np.linspace(1, 5, num=10, dtype=int)
    
    • 1
    • 2
    • 3
    • 4

    在不同轴上生成样本数据

    import numpy as np
    
    # 在第二个轴上生成5个均匀分布的数据点,从0到1
    arr5 = np.linspace(0, 1, num=5, axis=1)
    
    • 1
    • 2
    • 3
    • 4

    这些示例演示了如何使用numpy.linspace函数以不同方式生成等间隔的一维数组。

    十、numpy.random.rand()函数

    10.1 rand()函数介绍

    以下是 numpy.random.rand 函数的详细说明:

    函数原型

    numpy.random.rand(d0, d1, ..., dn)
    
    • 1

    参数说明
    d0, d1, …, dn: 这些是可选参数,用于指定生成的随机数据的维度。您可以提供任意数量的维度参数。如果没有提供参数,则返回一个在[0, 1)范围内均匀分布的随机数。

    功能
    numpy.random.rand 函数用于生成具有指定维度的随机浮点数数组。这些随机数是从区间 [0, 1) 的均匀分布中生成的。

    10.2 示例代码

    以下是使用不同参数形式的示例代码:

    生成一个随机浮点数

    import numpy as np
    
    # 生成一个单一的随机浮点数
    random_num = np.random.rand()
    
    • 1
    • 2
    • 3
    • 4

    生成一维数组

    import numpy as np
    
    # 生成一个包含5个随机浮点数的一维数组
    array1d = np.random.rand(5)
    
    • 1
    • 2
    • 3
    • 4

    生成二维数组

    import numpy as np
    
    # 生成一个包含2行3列的二维数组
    array2d = np.random.rand(2, 3)
    
    • 1
    • 2
    • 3
    • 4

    生成三维数组

    import numpy as np
    
    # 生成一个包含2个3x2矩阵的三维数组
    array3d = np.random.rand(2, 3, 2)
    
    • 1
    • 2
    • 3
    • 4

    这些示例演示了如何使用 numpy.random.rand 函数以不同方式生成随机数数组,具体取决于您提供的维度参数。


    总结

    创建NumPy的ndarray数组是进入Python科学计算和数据分析的第一步。在本文中,我们学习了如何导入NumPy库,创建数组对象,以及一些常见的数组操作。这些基础知识将为你进一步探索NumPy的强大功能和广泛应用奠定坚实的基础。NumPy不仅提供了高性能的数学函数,还为数据处理和分析提供了便捷的工具,使得处理大规模数据变得更加高效和方便。继续学习和掌握NumPy,将使你更加熟练地处理各种数据科学任务。

  • 相关阅读:
    设置docker启动项目
    memcmp函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )
    使用 IPSET 添加 CDN 节点 IP(IPv4/IPv6)到防火墙白名单
    element-ui的el-tree组件实现单选功能及选择子节点,获取所有父级节点或选中所有父级节点
    电容笔哪个厂家的产品比较好?平价电容笔推荐
    Hydra参数
    php获取农历日期节日
    hisat2 建立索引 序列比对rnaseq上游分析linux
    正点原子lwIP学习笔记——NETCONN接口TCP实验
    Python 之 sqrt函数浅析
  • 原文地址:https://blog.csdn.net/m0_62599305/article/details/133952999