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

时间:2017-03-30 00:16:19

标签: numpy concat

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

 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

谢谢。

2 个答案:

答案 0 :(得分:5)

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

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]])

我们将{1}数​​组与自身连接起来。第二个数字指定它应该在第一个数字指定的自身堆叠之前进行2d。现在有两种方法可以形成一个形状(3,)数组2d:使它成为(3,1)(第一个例子)或制作它(1,3)(第二个例子)。第三个数字指定第一个原始维度(即3)在2d数组中的位置。

答案 1 :(得分:0)

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]])