【Python numpy】创建Ndarray数组对象

news/2024/7/19 8:41:35 标签: python, numpy, 开发语言, 爬虫, ocr, pyqt, 后端

文章目录

  • 前言
  • 一、numpy.array()函数
    • 1.1 函数基本介绍
    • 1.2 示例代码
      • 创建一个包含整数的一维数组
      • 创建一个指定数据类型的一维数组
      • 创建一个多维数组
      • 创建一个具有最小维度要求的数组
  • 二、numpy.empty()函数
    • 2.1 empty()函数介绍
    • 2.2 示例代码
      • 创建一个未初始化的一维数组
      • 创建一个未初始化的二维数组
      • 创建一个未初始化的具有指定数据类型的数组:
      • 创建一个未初始化的列主序数组
  • 三、numpy.zeros()函数
    • 3.1 zeros函数介绍
    • 3.2 示例代码
      • 创建一个一维的以零填充的数组
      • 创建一个二维的以零填充的数组:
      • 创建一个以整数类型填充的数组:
      • 创建一个以列主序(Fortran风格)填充的数组:
  • 四、numpy.ones()函数
    • 4.1 ones函数介绍
    • 4.2 示例代码
      • 创建一个一维的以1填充的数组
      • 创建一个二维的以1填充的数组
      • 创建一个以整数类型填充的数组
      • 创建一个以列主序(Fortran风格)填充的数组:
  • 五、numpy.full()函数
    • 5.2 示例代码
      • 创建一个一维的以3.14填充的数组
      • 创建一个二维的以7填充的数组
      • 创建一个以整数类型填充的数组
      • 创建一个以列主序(Fortran风格)填充的数组:
  • 六、numpy.eye()函数
    • 6.1 eye函数介绍
    • 6.2 示例代码
      • 创建一个3x3的单位矩阵
      • 创建一个4x4的单位矩阵,但对角线上的元素偏移为1
      • 创建一个3x4的单位矩阵
      • 创建一个单位矩阵,数据类型为整数
  • 七、numpy.arange()函数
    • 7.1 arange函数介绍
    • 7.2 示例代码
      • 创建一个包含0到9的整数数组
      • 创建一个包含2到10的整数数组,步长为2:
      • 创建一个包含0.0到1.0的浮点数数组,步长为0.1
      • 创建一个包含5到1的整数数组,步长为-1
  • 八、numpy.frombuffer()函数
    • 8.1 函数介绍
    • 8.2 示例代码
      • 从字节串创建一个整数数组
      • 从字节串创建一个浮点数数组,并指定读取前4个字节
      • 从文件对象创建一个整数数组,从文件当前位置读取数据:
  • 九、numpy.linspace()函数
    • 9.1 函数介绍
    • 9.2 示例代码
      • 基本用法
      • 不包括stop值的序列
      • 返回序列和步长的元组
      • 指定数据类型
      • 在不同轴上生成样本数据
    • 十、numpy.random.rand()函数
    • 10.1 rand()函数介绍
    • 10.2 示例代码
      • 生成一个随机浮点数
      • 生成一维数组
      • 生成二维数组
      • 生成三维数组
  • 总结


前言

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


numpyarray_10">一、numpy.array()函数

1.1 函数基本介绍

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

python">numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

参数说明:

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 示例代码

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

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

python">import numpy as np

arr = np.array([1, 2, 3, 4, 5])

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

python">import numpy as np

arr_float = np.array([1.1, 2.2, 3.3], dtype=float)

创建一个多维数组

python">import numpy as np

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

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

python">import numpy as np

arr_ndmin = np.array([1, 2, 3], ndmin=2)

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

numpyempty_72">二、numpy.empty()函数

2.1 empty()函数介绍

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

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

参数说明:

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

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

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

功能:

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

2.2 示例代码

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

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

python">import numpy as np

arr = np.empty(5)

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

python">import numpy as np

matrix = np.empty((3, 4))

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

python">import numpy as np

arr_int = np.empty(4, dtype=int)

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

python">import numpy as np

arr_fortran = np.empty(3, order='F')

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

numpyzeros_130">三、numpy.zeros()函数

3.1 zeros函数介绍

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

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

参数说明:

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

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

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

功能:

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

3.2 示例代码

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

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

python">import numpy as np

arr = np.zeros(5)

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

python">import numpy as np

matrix = np.zeros((3, 4))

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

python">import numpy as np

arr_int = np.zeros(4, dtype=int)

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

python">import numpy as np

arr_fortran = np.zeros(3, order='F')

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

numpyones_188">四、numpy.ones()函数

4.1 ones函数介绍

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

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

参数说明:

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

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

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

功能:

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

4.2 示例代码

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

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

python">import numpy as np

arr = np.ones(5)

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

python">import numpy as np

matrix = np.ones((3, 4))

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

python">import numpy as np

arr_int = np.ones(4, dtype=int)

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

python">import numpy as np

arr_fortran = np.ones(3, order='F')

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

numpyfull_246">五、numpy.full()函数

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

python">numpy.full(shape, fill_value, dtype=None, order='C')

参数说明:

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

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

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

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

功能:

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

5.2 示例代码

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

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

python">import numpy as np

arr = np.full(5, 3.14)

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

python">import numpy as np

matrix = np.full((3, 4), 7)

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

python">import numpy as np

arr_int = np.full(4, 42, dtype=int)

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

python">import numpy as np

arr_fortran = np.full(3, 2.718, order='F')

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

numpyeye_305">六、numpy.eye()函数

6.1 eye函数介绍

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

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

参数说明:

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

功能:

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

6.2 示例代码

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

创建一个3x3的单位矩阵

python">import numpy as np

identity_matrix = np.eye(3)

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

python">import numpy as np

offset_matrix = np.eye(4, k=1)

创建一个3x4的单位矩阵

python">import numpy as np

custom_shape_matrix = np.eye(3, 4)

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

python">import numpy as np

integer_matrix = np.eye(2, dtype=int)

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

numpyarange_364">七、numpy.arange()函数

7.1 arange函数介绍

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

python">numpy.arange([start, ]stop, [step, ]dtype=None)

参数说明:

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

功能:

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

7.2 示例代码

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

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

python">import numpy as np

arr1 = np.arange(10)

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

python">import numpy as np

arr2 = np.arange(2, 12, 2)

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

python">import numpy as np

arr3 = np.arange(0.0, 1.0, 0.1)

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

python">import numpy as np

arr4 = np.arange(5, 0, -1)

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

numpyfrombuffer_422">八、numpy.frombuffer()函数

8.1 函数介绍

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

python">numpy.frombuffer(buffer, dtype=float, count=-1, offset=0)

参数说明:

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

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

8.2 示例代码

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

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

python">import numpy as np

data = b'\x01\x02\x03\x04\x05'
arr1 = np.frombuffer(data, dtype=int)

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

python">import numpy as np

data = b'\x40\x49\x0f\xdb\x29\x5c\x8f\xc2'
arr2 = np.frombuffer(data, dtype=float, count=2)

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

python">import numpy as np

with open('data.bin', 'rb') as file:
    arr3 = np.frombuffer(file.read(), dtype=int)

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

numpylinspace_473">九、numpy.linspace()函数

9.1 函数介绍

函数原型

python">numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)

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

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

9.2 示例代码

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

基本用法

python">import numpy as np

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

不包括stop值的序列

python">import numpy as np

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

返回序列和步长的元组

python">import numpy as np

# 创建一个包含序列和步长的元组
arr3, step = np.linspace(0, 10, num=11, retstep=True)

指定数据类型

python">import numpy as np

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

在不同轴上生成样本数据

python">import numpy as np

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

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

numpyrandomrand_543">十、numpy.random.rand()函数

10.1 rand()函数介绍

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

函数原型

python">numpy.random.rand(d0, d1, ..., dn)

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

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

10.2 示例代码

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

生成一个随机浮点数

python">import numpy as np

# 生成一个单一的随机浮点数
random_num = np.random.rand()

生成一维数组

python">import numpy as np

# 生成一个包含5个随机浮点数的一维数组
array1d = np.random.rand(5)

生成二维数组

python">import numpy as np

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

生成三维数组

python">import numpy as np

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

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


总结

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


http://www.niftyadmin.cn/n/5109318.html

相关文章

【(数据结构)— 双向链表的实现】

&#xff08;数据结构&#xff09;— 双向链表的实现 一.双向链表的结构二. 双向链表的实现2.1 头文件 ——双向链表的创建及功能函数的定义2.2 源文件 ——双向链表的功能函数的实现2.3 源文件 ——双向链表功能的测试2.4 双向链表各项功能测试运行展示2.4.1 双向链表的初始化…

Microsoft Edge中使用开源的ChatGPT

一、双击打开浏览器 找到&#xff1a;扩展&#xff0c;打开 二、打开Microsoft Edge加载项 三、Move tab新标签 获取免费ChatGPT 四、启用Move tab。启用ChatGPT。 扩展 管理扩展 启用 五、新建标签页&#xff0c;使用GPT 六、使用举例 提问 GPT回复

ChatGPT 即将诞生一周年,OpenAI 将有大动作

图片来源&#xff1a;由无界AI生成 下个月就是 ChatGPT 一周年纪念日。OpenAI 正在谋划新的大动作。可以肯定地说&#xff0c;自诞生以来&#xff0c;ChatGPT 就为 OpenAI 提供了不可阻挡的增长动力。 01 营收超预期&#xff0c;OpenAI 缓了一口气 据 The Information 报道&…

插槽的基本使用和作用域插槽

1.编译作用域 父级模板里的所有内容都是在父级作用域中编译的&#xff1b;子模板里的所有内容都是在子作用域中编译的。 即父子组件只能使用各自作用域的数据 2.插槽的后备内容&#xff08;slot中默认配置内容&#xff09; 可以在slot中提前设置一段内容作为默认值&#xf…

第九章:最新版零基础学习 PYTHON 教程—Python 元组(第一节 -Python 元组)

元组是 Python 对象的集合,很像列表。存储在元组中的值序列可以是任何类型,并且它们由整数索引。 元组的值在语法上用“逗号”分隔。尽管不是必需的,但更常见的是通过将值序列括在括号中来定义元组。这有助于更轻松地理解 Python 元组。 目录 创建元组 用于演示在元组中…

spring.profiles生效顺序

服务在不同环境启动&#xff0c;需要的运行参数可能会有差异&#xff0c;不同启动环境也可能公用同一份运行参&#xff0c;为了方便对这些不同环境相同和差异参数进行管理&#xff0c;springboot提供了文件配置化形式对这些参数进行管理&#xff0c;对于不同环境的差异化参数使…

关于数据库连接池和线程,记录几个问题

文章目录 1.HirakiPool - Connection is not available, request timed out after2.在一个线程内&#xff0c;调用多次dataSource.getConnection()这是为什么呢&#xff1f;是谁来实现的线程内连接唯一呢&#xff1f; 1.HirakiPool - Connection is not available, request tim…

UVM 验证方法学之interface学习系列文章(八)《interface不小心引入X态问题》

前面的文章学习,想必大家都对interface 有了深入了解。大家可不要骄傲哦,俗话说:小心驶得万年船。今天,再给大家介绍一个工作中,不是经常遇到,但是一旦遇到,会让你纠结很久的事情。 前面文章提到,随着验证复杂度的不断增加,interface 的bind 的操作,是必不可少的用法…