axis=-1,1,0与sum(-1)、sum(1)、sum(0)、sum()以及max等函数操作同理

python中的-1所表示的维度为倒数第一个。

(1)将张量的中的所有元素用下标表示其所在的位置。

(2)将张量进行分组,然后再操作。axis=i,忽略i轴下标,将其他轴下标相同的为一组,然后再对该组进行操作。

分组则意味着会降维,则每axis一次,维度就降低1,所得到的结果张量维度降低。

numpy函数不指定axis的值时,表示函数对所有元素进行操作;

 二维张量:


>>> import numpy as np
 
>>> a=np.array([[1,2],
                [3,4],
                [5,6]])
 
>>> a.mean(axis=0)
array([3., 4.])
>>> a.mean(axis=1)
array([1.5, 3.5, 5.5])

"""
二维张量也可以直接记忆

axis=0:可以理解为按照行顺序,对列进行操作

axis=1:可以理解为按照列顺序,对行进行操作
"""

(1)张量a中的所有元素用下标表示其所在的位置。如下

[[00, 01],
 [10, 11],
 [20, 21]]

(2)将张量进行分组,然后再操作。axis=i,忽略i轴下标,将其他轴下标相同的为一组,然后再对该组进行操作。

>>a.shape()
(3,2)

若 axis = 0,则结果张量相比较于原始张量维度减1,变成1维。分成2组,每组个数为3,再进行操作。
(张量元素下标中第一个数字除去,剩下的数字相同的为一组)
[[0, 1],
 [0, 1],
 [0, 1]]

若 axis = 1,则结果张量相比较于原始张量维度减1,变成1维,分成3组,每组个数为2,再进行操作。
(张量元素下标中第二个数字除去,剩下的数字相同的为一组)
[[0, 0],
 [1, 1],
 [2, 2]]

三维张量:


import numpy as np
 
np.random.seed(1234)
embeddings  = np.random.randint(0, 10, size=[3, 3, 5])
print(embeddings )
 
a = np.max(embeddings ,axis=-1)
b = np.max(embeddings ,axis=0)
c = np.max(embeddings ,axis=1)
 
print(a)
print(b)
print(c)

[[[3 6 5 4 8],                                    
  [9 1 7 9 6],
  [8 0 5 0 9]],

 [[6 2 0 5 2],          
  [6 3 7 0 9],       
  [0 3 2 3 1]],

 [[3 1 3 7 1],
  [7 4 0 5 1],
  [5 9 9 4 0]]]

axis=-1,表示倒数第一个维度。

[[8 9 9]
 [6 9 3]
 [7 7 9]]

axis=0

[[6 6 5 7 8]
 [9 4 7 9 9]
 [8 9 9 4 9]]

axis=1

[[9 6 7 9 9]
 [6 3 7 5 9]
 [7 9 9 7 1]]

(1)将张量的中的所有元素用下标表示其所在的位置

[[[000, 001, 002, 003, 004],

  [010, 011, 012, 013, 014],

  [020, 021, 022, 023, 024]],

 [[100, 101, 102, 103, 104],

  [110, 111, 112, 113,  114],

  [120, 121, 122, 123, 124]],

 [[200, 201, 202, 203, 204],

  [210, 211, 212, 213, 214],

  [220, 221, 222, 223, 224]]]

(2)将张量进行分组,然后再操作。axis=i,忽略i轴下标,将其他轴下标相同的为一组,然后再对该组进行操作

>>embeddings.shape()
(3, 3, 5)

若 axis = -1,则结果张量相比较于原始张量维度减1,变成2维,shape:3*3。分成3*3组,每组个数为5,再进行操作。
(张量元素下标中第一个数字除去,剩下的数字相同的为一组)
[[[00, 00, 00, 00, 00],
  [01, 01, 01, 01, 01],
  [02, 02, 02, 02, 02]],
 [[10, 10, 10, 10, 10],
  [11, 11, 11, 11, 11],
  [12, 12, 12, 12, 12],
 [[20, 20, 20, 20, 20],
  [21, 21, 21, 21, 21],
  [22, 22, 22, 22, 22]]]


若 axis = 0,则结果张量相比较于原始张量维度减1,变成2维,shape:3*5,分成3*5组,每组个数为3,再进行操作。
(张量元素下标中第二个数字除去,剩下的数字相同的为一组)
同理,略


若 axis = 1,则结果张量相比较于原始张量维度减1,变成2维,shape:3*5,分成3*5组,每组个数为3,再进行操作。
(张量元素下标中第二个数字除去,剩下的数字相同的为一组)
同理,略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值