Python NumPy 矩阵查询、定位与赋值操作详解

方予
方予
发布时间:2026-10-16 | 4人浏览过
原创

本文详细介绍 Python NumPy 库中矩阵的核心操作,涵盖基于条件的行筛选、指定行列取值与截取、最大值定位及行列求和方法。同时解析 where 函数的条件赋值逻辑与指定位置赋值技巧,帮助开发者高效处理多维数组数据。

根据特定条件对矩阵行进行筛选

在矩阵中筛选出第7列(索引为6)值等于5的所有行

B = A[ A[:,6] == 5]

在矩阵中筛选出第7列(索引为6)值大于5的所有行

B = A[ A[:,6] > 5]

掌握 NumPy 的基础操作是进行复杂数据处理的前提

通过行列索引直接获取矩阵中的具体数值

获取矩阵中第2行第2列(索引为[1,1])的元素值

import numpy as np
#产生3行4列的矩阵
x=np.arange(0,12)
x=x.reshape((3,4))
print(x)

y=x[1,1]
print(y)

截取矩阵的前若干行及前若干列

import numpy as np
#产生3行4列的矩阵
x=np.arange(0,12)
x=x.reshape((3,4))
print(x)

#[a:b,c:d] 表示取a-b行,c-d列。a、c可以省略,表示从0开始
#取x的前两行(所有列)
y=x[:2] # 等价于 y=x[:2,:],等价于 y=x[0:2,...]
print(y)

#取x的前两列(的所有行)
z=x[:,:2] # 等价于 z=x[:,0:2],等价于 z=x[...,0:2]
print(z)

精确截取矩阵中指定的某几行和某几列

import numpy as np
#产生3行4列的矩阵
x=np.arange(0,12)
x=x.reshape((3,4))
print(x)

#[a:b,c:d] 表示取a-b行,c-d列。a、c可以省略,表示从0开始
#取x的第2行第2-3列
y=x[1,1:3]

根据给定数值反向查找其在矩阵中的行列位置

找出每一行中最大值所在的列索引

import numpy as np
#产生3行4列的矩阵
x=np.arange(0,12)
x=x.reshape((3,4))
print(x)

#  取出x中元素最大值所对应的索引,按照a[0][1]中的a[1]方向,即行方向搜索最大值。
y = np.argmax(x, 1)
print(y)

找出每一列中最大值所在的行索引

#  取出x中元素最大值所对应的行号
y = np.argmax(x, 0)
print(y)

获取整个矩阵中最大值所在的行号和列号

x=np.arange(0,12)
x=x.reshape((3,4))
print(x)

# where返回一个长度为2的元组,第一个元素保存的是行号,第二个元素保存的是列号
y = np.where(x == np.max(x))
print(y)
print("最大值所在行:",y[0],"最大值所在列:",y[1])

按行或按列计算矩阵元素的总和

计算每行的和,并将结果作为新列追加到矩阵末尾

x=np.arange(0,12)
x=x.reshape((3,4))
print(x)

y = np.sum(x, axis=1)
print(y)

xy = np.hstack((x, y.reshape(x.shape[0], -1)))
print(xy)

计算每列的和,并将结果作为新行追加到矩阵底部

x=np.arange(0,12)
x=x.reshape((3,4))
print(x)

z = np.sum(x, axis=0)
print(z)

xz = np.vstack((x, z))
print(xz)

对矩阵中的元素进行赋值操作

根据特定条件对矩阵元素进行批量赋值

x=np.arange(0,12)
x=x.reshape((3,4))
print(x)

x[x<=5]=0 # 将小于5的数赋值为0
print(x)

使用 where 函数实现条件选择与赋值

x=np.arange(0,12)
x=x.reshape((3,4))
print(x)

# results = np.where(condition, x, y)
# 当条件为真时,对应位置返回x中的值,条件不成立则返回y中的值
y = np.where(x>5,x,0)  #满足大于5的值设置为x,不满足的设为0
print(y)

执行逻辑运算生成布尔掩码

x=np.arange(0,12)
x=x.reshape((3,4))
print(x)

print(x>5) # x>5的为Ture,否则为False

向指定的行、列或特定行列组合赋值

x=np.arange(0,12)
x=x.reshape((3,4))
print(x)

x[1,1] = 999 # 指定行列号赋值
print(x)

x[1] = 123 # 指定行赋值
print(x)

x[:,1] = 321 # 指定列赋值
print(x)

本文介绍了 Python NumPy 中查询、定位及赋值数值所在行列的相关操作,更多相关内容请参阅本站往期文章或继续关注后续更新,感谢支持。

相关标签:

本站声明

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

Python 相关产品和应用

全部下载

专题列表