Python中numpy库中 axis=0,axis= 1轴的详解

本文详细解释了在处理二维矩阵时,如何通过设定axis参数来指定对行或列进行操作的方法。包括求和、求最大值等操作的具体实现,并提供了实例代码。

对数据比如二维矩阵进行操作时,经常需要在横轴(行)方向或者纵轴(列)方向对数据进行操作,这时需要设定参数axis的值:

  1. axis = 0 代表对横轴(行)操作,也就是第0轴;
  2. axis = 1 代表对纵轴(列)操作,也就是第1轴;

操作为:

axis= 0 对a的横轴(行)进行操作,在运算的过程中其运算的方向表现为纵向(列)运算
axis= 1 对a的纵轴(列)进行操作,在运算的过程中其运算的方向表现为横向(行)运算

实例:

a=[[0,1,3],[1,2,2]]
n=np.array(a)
print(n.sum(axis=0))  # 即对横轴(行)进行操作,运算方向为纵轴方向(列),对每一列进行求和
print(n.sum(axis=1))  # 即对纵轴(列)进行操作,运算方向为横轴方向(行),对每一行进行求和

print(n.max(axis=0))
print(n.max(axis=1))

结果如下:

[1 3 5]
[4 5]
[1 2 3]
[3 2]

还有 torch 里面 dim=0, dim=1 的操作,我这边口诀是,对哪个维度求,那么就消去找个维度

比如一个矩阵[3,4] ,dim=0 那么 就消去 0维,得到 [4]      

每一行是 一个样本,每一列是一个特征

dim=0 表示在第 0 维上进行运算,跨行操作,也就是竖着看

dim=1 表示在第 1 维上进行运算,跨列操作,也就是横着看

在每一行里找最大值,返回“哪一列”最大。

memory_bank = torch.tensor([
    [1, 5, 3, 2],
    [7, 4, 6, 8],
    [9, 1, 2, 3]
])


# 3 行(每一行是一组样本)


torch.argmax(memory_bank, dim=0)

# tensor([2, 0, 1, 1])


torch.argmax(memory_bank, dim=1)

# tensor([1, 3, 0])

一般分类任务,主要是 dim=1,也就是求一个样本  一行里面最大的

评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值