np.r_的第三个参数? (麻木的)

Third parameter of np.r_? (numpy)

我正在查看文档,但我仍然无法弄清楚第三个参数是如何运作的。

 np.r_['0,2,0', [1,2,3], [4,5,6]]

输出:

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

2)

np.r_['1,2,0', [1,2,3], [4,5,6]]

输出:

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

第一个参数是轴,第二个是维数,第三个根据文档表示“哪个轴应包含小于指定维数的数组的开头”

这是文档:

https://docs.scipy.org/doc/numpy/reference/generated/numpy.r_.html

谢谢。

也许一个简单的例子可以解决问题:

b=np.arange(3)
np.r_['0,2,0', b, b]
# array([[0],
#        [1],
#        [2],
#        [0],
#        [1],
#        [2]])
np.r_['0,2,1', b, b]
# array([[0, 1, 2],
#        [0, 1, 2]])

我们正在将 b 一个一维数组与其自身连接起来。第二个数字指定在按照第一个数字指定的方式堆叠在自身上之前,它应该是二维的。现在有两种方法可以制作形状 (3,) 数组 2d:制作 (3, 1)(第一个示例)或制作 (1, 3)(第二个示例)。第三个数字指定第一个原始维度(即 3)在二维数组中的位置。

https://docs.scipy.org/doc/numpy/reference/generated/numpy.r_.html 负整数指定在新形状元组中应该放置升级数组的最后一维的位置,因此默认值为“-1”。

这句话是什么意思?

np.r_['0,2,-5', [1,2,3],[4,5,6] ] # ValueError: all the input array dimensions except for the concatenation axis must match exactly
np.r_['0,2,-6', [1,2,3],[4,5,6] ] # array([[1],[2],[3],[4],[5],[6]])