Python NumPy 创建数组(ndarray)

NumPy(Numerical Python 的缩写)是一个开源的 Python 科学计算库。通过 NumPy,Python 可以高效地处理 数组和矩阵数据,并提供大量用于 数值计算、线性代数、傅里叶变换和随机数生成 的函数。本文主要介绍 如何使用 Python NumPy 创建数组(ndarray),以及不同维度数组的基本概念。

1、创建一个 NumPy ndarray 对象

NumPy 主要用于处理数组。
在 NumPy 中,数组对象被称为 ndarray(N-dimensional array,多维数组)

可以使用 array() 函数创建一个 NumPy ndarray 对象。

示例:创建一维数组

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

输出结果:

[1 2 3 4 5] <class 'numpy.ndarray'>

type() 是 Python 内置函数,用于查看对象的类型。
从结果可以看出,arrnumpy.ndarray 类型。


使用不同数据结构创建 ndarray

创建 ndarray 时,可以将 列表、元组或其他类数组对象 传递给 array() 函数。

使用元组创建 NumPy 数组

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

无论使用列表还是元组,最终都会被转换为 ndarray

2、数组的维数(Dimensions)

数组中的 维(dimension) 表示数组的层级或深度。

  • 一维:类似列表

  • 二维:类似表格或矩阵

  • 三维及以上:用于表示更复杂的数据结构(如张量)

嵌套数组

嵌套数组 指的是:数组中的元素本身仍然是数组。

3、0-D Arrays(零维数组)

0-D 数组 又称为 标量(scalar)

  • 它没有维度

  • 表示单个数值

  • NumPy 中的每一个数值,本质上都是一个 0-D 数组

示例:创建 0-D 数组

import numpy as np arr = np.array(42) print(arr)

输出:

42

4、1-D Arrays(一维数组)

一维数组 是由 0-D 数组(标量)组成的数组。

  • 是最常见、最基础的 NumPy 数组形式

  • 类似于 Python 的列表

示例:创建一维数组

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

5、2-D Arrays(二维数组)

二维数组 是由一维数组作为元素组成的数组。

  • 通常用于表示 矩阵

  • 也可以理解为“行 × 列”的数据结构

NumPy 中曾有 numpy.mat 子模块用于矩阵运算,但现在更推荐直接使用 ndarray

示例:创建二维数组

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

该数组有:

  • 2 行

  • 3 列

6、3-D Arrays(三维数组)

三维数组 是以二维数组(矩阵)作为元素的数组。

  • 通常用于表示 三阶张量

  • 常见于图像数据、视频数据、深度学习输入等场景

示例:创建三维数组

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

这个数组可以理解为:

  • 2 个二维数组

  • 每个二维数组是 2×3 的矩阵

7、判断数组是几维(ndim)

NumPy 数组提供了 ndim 属性,用于返回数组的维数。

示例:查看不同数组的维度

import numpy as np a = np.array(42) b = np.array([1, 2, 3, 4, 5]) c = np.array([[1, 2, 3], [4, 5, 6]]) d = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]]) print(a.ndim) print(b.ndim) print(c.ndim) print(d.ndim)

输出结果:

0 1 2 3

8、高维数组(ndmin 参数)

NumPy 数组可以具有 任意数量的维度

在创建数组时,可以使用 ndmin 参数 强制指定最小维数

示例:创建一个 5 维数组

import numpy as np arr = np.array([1, 2, 3, 4], ndmin=5) print(arr) print('number of dimensions :', arr.ndim)

输出示例:

[[[[[1 2 3 4]]]]] number of dimensions : 5

维度结构说明

在该数组中:

  • 第 5 个维度(最内层)包含 4 个元素

  • 第 4 个维度包含 1 个向量

  • 第 3 个维度包含 1 个矩阵

  • 第 2 个维度包含 1 个 3-D 数组

  • 第 1 个维度包含 1 个 4-D 数组

推荐阅读
cjavapy编程之路首页