Python NumPy基础教程:数组创建、运算与索引切片详解

雨后青山
雨后青山
发布时间:2026-10-13 | 5人浏览过
原创

本文详细介绍Python中NumPy库的基础操作,涵盖数组与矩阵的创建方法、元素级与矩阵级运算规则、常用统计函数以及高效的索引与切片技巧。适合机器学习初学者掌握数据处理核心技能,通过具体代码示例解析广播机制、累加累乘及多维数组访问方式。

NumPy库简介与重要性

NumPy(Numerical Python)是Python语言中用于科学计算的核心扩展库,它提供了强大的多维数组对象及矩阵运算工具,并内置了大量高效的数学函数。作为机器学习与深度学习领域的基石,熟练掌握NumPy是进行数据预处理和算法实现的必要前提。

数组创建基础

导入NumPy库并创建数组是入门的第一步。

常用数组创建函数


import numpy as np
a = np.arraya = np.array([0, 1, 2, 3, 4] )  #使用array函数

a = np.array([[11, 12, 13, 14, 15],
          [16, 17, 18, 19, 20],
          [21, 22, 23, 24, 25],
          [26, 27, 28 ,29, 30],
          [31, 32, 33, 34, 35]])  #创建多维数组
a=np.zeros((2, 3))  #创建两行三列的0填充的矩阵,ones(shape)则是创建1填充的,np.full((m,n)8) m行n列的全部是8的参数
a=np.linspace(1., 4., 6) #创建1到4之间,共6个元素的等值间距的数组
a=np.arange(起,止,步长) #创建 从起到至,按步长排列的数组
a= np.indices((3,3)) #创建一个堆叠的更高维度的数组
a=np.mat() #创建矩阵,array只能从列表中生成,而mat可以从字符串或者列表中生成,比如mat("1,2;3,4"),而array([1,2,3,4]),mat是矩阵、array是数组(假矩阵)

基本算术运算与广播机制

NumPy支持基本算术运算符,包括加、减、乘、除。

在NumPy中,矩阵间的加减乘除默认执行对应元素(element-wise)的运算。需要注意的是,当一个数组与一个整数进行运算时,该整数会应用到数组的每一个元素上,这一机制称为“广播”(broadcasting)。若涉及不同阶数的数组运算,系统会尝试按行与行进行对应匹配处理。

若使用np.mat创建的矩阵对象执行*运算,则执行的是线性代数意义上的矩阵乘法,而非对应元素相乘,这与普通数组的行为有所区别。

常用数学计算函数

NumPy提供了多种其他计算函数以处理更复杂的数学需求:

  • multiply()函数用于执行数组或矩阵对应位置的元素相乘。
  • dot()函数用于计算两个数组或矩阵的矩阵乘积(如a.dot(b)表示a与b的矩阵乘法),这符合线性代数中的标准乘法定义。
  • sum()函数用于计算数组元素的总和,可通过axis参数指定求和方向:axis=0表示沿纵向(列)求和,axis=1表示沿横向(行)求和。即使数据以[[...],[...],[...]]的形式横向排列,NumPy也会将其视为二维方阵处理,最终返回一维数组结果[...]。
  • min()函数用于查找并返回数组中的最小元素。
  • max()函数用于查找并返回数组中的最大元素。
  • mean()函数用于计算并返回数组元素的算术平均值。
  • std()函数用于计算并返回数组元素的标准差。
  • var()函数用于计算并返回数组元素的方差。
  • cumprod()函数用于计算累乘数组,即返回原数组中当前位置之前所有元素的乘积。该函数支持axis参数指定方向:0表示纵向累乘,1表示横向累乘,默认值为横向。
  • cumsum()函数用于计算累加数组,即返回原数组中当前位置之前所有元素的总和。
  • ptp()函数用于返回数组中最大值与最小值的差值(Peak-to-Peak)。

数组索引与切片技巧

掌握NumPy的索引与切片操作是高效处理数据的关键。

索引与切片代码示例


import numpy as np
data = np.arange(12).reshape((3, 4))
print(data)
##对数组元素进行索引和切片
# 1. 取第一行的数据
print(data[0])

# 2. 取第一列的数据
print(data.T[0])
print(data[:, 1])

#3. 获取多行
print(data[:2])

# 4. 获取多行列
print(data.T[:2])
print(data[:, :2])


# 5. 获取指定行的前几列;
print(data)
print(data[[0,2], :2])
print(data[:2, [0,2]])

以上内容涵盖了NumPy基础操作的核心要点,希望能为您的学习提供帮助。欢迎继续支持本站获取更多技术资源。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表