Python NumPy 矩阵查询、定位与赋值操作详解
本文详细介绍 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 中查询、定位及赋值数值所在行列的相关操作,更多相关内容请参阅本站往期文章或继续关注后续更新,感谢支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









