Axis是什么,你真的看懂吗(通俗易懂)

编程入门 行业动态 更新时间:2024-10-07 04:27:10

Axis是什么,<a href=https://www.elefans.com/category/jswz/34/1764663.html style=你真的看懂吗(通俗易懂)"/>

Axis是什么,你真的看懂吗(通俗易懂)

目录

  • Axis是什么,你真的看懂吗
    • 一、理解axis
      • 1.1二维数组之concat
      • 1.2三维数组之concat
    • 现在大家看得懂吗,顺便点赞关注一下哈,以后会经常更新。谢谢哈,么么哒

Axis是什么,你真的看懂吗

不知道大家最开始接触到axis的时候是怎么样的,反正我是挺难理解的…我们可以发现TensorFlow的很多API都有axis这个参数,如果我们对axis不了解,压根不知道API是怎么搞的。

一句话总结axis:axis可以方便我们将数据进行不同维度的处理。

一、理解axis

如果你像我一样,发现API中有axis这个参数,但不知道是什么意思。可能就会搜搜axis到底代表的什么意思。于是可能会类似搜到下面的信息:

使用0值表示沿着每一列或行标签索引值向下执行方法(axis=0代表往跨行)使用1值表示沿着每一行或者列标签模向执行对应的方法(axis=1代表跨列)

但我们又知道,我们的数组不单单只有二维的,还有三维、四维等等。一旦维数超过二维,就无法用简单的行和列来表示了。

所以,可以用我下面的方式进行理解:

  • axis=0将最开外头的括号去除,看成一个整体,在这个整体上进行运算
  • axis=1将第二个括号去除,看成一个整体,在这个整体上进行运算…
  • 依次类推

废话不说了,下面以例子说明保证会让大家看的会说,哦,原来是这样啊。

1.1二维数组之concat

首先,我们来看个concat的例子,concat 第一个参数接收val,第二个参数接收的是axis

def learn_concat():# 二维数组t1 = tf.constant([[1, 2, 3], [4, 5, 6]])t2 = tf.constant([[7, 8, 9], [10, 11, 12]])with tf.Session() as sess:# 二维数组针对 axis 为0 和 1 的情况print(sess.run(tf.concat([t1, t2], 0)))print(sess.run(tf.concat([t1, t2], 1)))

ok,下面以图示的方式来说明。现在我们有两个数组,分别是t1和t2:

首先,我们先看axis=0的情况,也就是tf.concat([t1, t2], 0)。从上面的描述,我们知道,先把第一个括号去除,然后将其子内容看成一个整体,在这个整体下进行想对应的运算(这里我们就是concat)。

所以最终的结果是:
[
[1 2 3],
[4 5 6],
[7 8 9],
[10 11 12]
]

是不是感觉变得简单又看得懂哟?

接着,我们再看axis=1的情况,也就是tf.concat([t1, t2], 1)。从上面的描述,我们知道,先把第二个括号去除,然后将其子内容看成一个整体,在这个整体下进行想对应的运算(这里我们就是concat)。


所以最终的结果是:

[
[1, 2, 3, 7, 8, 9]
[4, 5, 6, 10, 11, 12]
]

1.2三维数组之concat

接下来我们看一下三维的情况

def learn_concat():# 三维数组    t3 = tf.constant([[[1, 2], [2, 3]], [[4, 4], [5, 3]]])t4 = tf.constant([[[7, 4], [8, 4]], [[2, 10], [15, 11]]])with tf.Session() as sess:# 三维数组针对 axis 为0 和 1 和 -1 的情况print(sess.run(tf.concat([t3, t4], 0)))print(sess.run(tf.concat([t3, t4], 1)))print(sess.run(tf.concat([t3, t4], -1)))

ok,下面也以图示的方式来说明。现在我们有两个数组,分别是t3和t4:

首先,我们先看axis=0的情况,也就是tf.concat([t3, t4], 0)。从上面的描述,我们知道,先把第一个括号去除,然后将其子内容看成一个整体,在这个整体下进行想对应的运算(这里我们就是concat)。

所以最终的结果是:

[
[
[1 2]
[2 3]
]
[
[4 4]
[5 3]
]
[
[7 4]
[8 4]
]
[
[2 10]
[15 11]
]
]

接着,我们再看axis=1的情况,也就是tf.concat([t3, t4], 1)。从上面的描述,我们知道,先把第二个括号去除,然后将其子内容看成一个整体,在这个整体下进行想对应的运算(这里我们就是concat)。

所以最终的结果是:

[
[
[1 2]
[2 3]
[7 4]
[8 4]
]
[
[4 4]
[5 3]
[2 10]
[15 11]
]
]

最后,我们来看一下axis=-1这种情况,在文档也有相关的介绍:

As in Python, the axis could also be negative numbers. Negative axis
are interpreted as counting from the end of the rank, i.e.,
axis + rank(values)-th dimension

所以,对于我们三维的数组而言,那axis=-1实际上就是axis=2,下面我们再来看一下这种情况:

最终的结果是:

[
[
[1 2 7 4]
[2 3 8 4]
]
[
[4 4 2 10]
[5 3 15 11]
]
]

除了concat以外,其实很多函数都用到了axis这个参数,再举个例子:

item = np.array([[1,4,8],[2,3,5],[2,5,1],[1,10,7]])
item
array([[1, 4, 8],
[2, 3, 5],
[2, 5, 1],
[1, 10, 7]])

item.sum(axis = 0)
array([ 6, 22, 21])

当axis=0时计算出每行的元素

item.sum(axis = 1)
array([13, 10, 8, 18])
当axis=1时计算出每列的元素

现在大家看得懂吗,顺便点赞关注一下哈,以后会经常更新。谢谢哈,么么哒

更多推荐

Axis是什么,你真的看懂吗(通俗易懂)

本文发布于:2024-03-14 09:47:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1736204.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:你真   易懂   通俗   看懂   Axis

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!