为什么最后一个轴的工作方式与np.r_中的第一个轴相同?

时间:2019-02-25 14:33:23

标签: python numpy

我正试图了解np.r_的参数。

我搜索了很多

post中的示例不涉及参数。

post中的示例不涉及参数给了我一些启发。

我所知道的是,第一个参数是轴(如果np.r_['0', a, a]中为'0',则由行连接),第二个参数是维数(由np.r_['1,3', a, a]指定的3-d)。 / p>

这是编码。

a = np.array([[0, 1, 2], [3, 4, 5]])
np.r_['0', a, a]

给予

array([[0, 1, 2],
       [3, 4, 5],
       [0, 1, 2],
       [3, 4, 5]])

两者

np.r_['1', a, a]

np.r_['-1', a, a] # concatenate along last axis

给予

array([[0, 1, 2, 0, 1, 2],
       [3, 4, 5, 3, 4, 5]])

最后一个('-1')来自numpy帮助手册。

我的问题是,为什么最后一个轴与第一个轴的工作方式相同?

有一个示例来区分第一个参数的“ 1”和“ -1”。

1 个答案:

答案 0 :(得分:0)

使用3-d数组将显示差异。

>>> a27 = np.arange(27).reshape((3,3,3))
>>> np.r_['1', a27, a27]
array([[[ 0,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8],
        [ 0,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8]],

       [[ 9, 10, 11],
        [12, 13, 14],
        [15, 16, 17],
        [ 9, 10, 11],
        [12, 13, 14],
        [15, 16, 17]],

       [[18, 19, 20],
        [21, 22, 23],
        [24, 25, 26],
        [18, 19, 20],
        [21, 22, 23],
        [24, 25, 26]]])
>>> np.r_['-1', a27, a27]
array([[[ 0,  1,  2,  0,  1,  2],
        [ 3,  4,  5,  3,  4,  5],
        [ 6,  7,  8,  6,  7,  8]],

       [[ 9, 10, 11,  9, 10, 11],
        [12, 13, 14, 12, 13, 14],
        [15, 16, 17, 15, 16, 17]],

       [[18, 19, 20, 18, 19, 20],
        [21, 22, 23, 21, 22, 23],
        [24, 25, 26, 24, 25, 26]]])