R等于python numpy切片:[:,None,:]

时间:2015-12-04 16:14:36

标签: python r numpy matrix multidimensional-array

给定2x2矩阵a,将其转换为2x1数组b,其中每列是a的行向量。这在python中真的很容易。在R中有没有一种优雅而明确的方法呢?

> a = np.array([[1, 2], [3, 4]])

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

> b = a[:, None, :]

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

在R中我想要这个输入:

a = matrix(1:4, ncol=2, byrow = T)

     [,1] [,2]
[1,]    1    2
[2,]    3    4

要修改以匹配此输出:

b = array(1:4, dim=c(2,1,2))

, , 1

     [,1]
[1,]    1
[2,]    2

, , 2

     [,1]
[1,]    3
[2,]    4

1 个答案:

答案 0 :(得分:2)

看起来你可能真的试图获得2x1x2阵列?所以在R中你将矩阵转换为数组(这些是单独的类),指定新数组的预期尺寸。

a <- matrix(c(1,2,3,4), 2, byrow=TRUE)
b <- array(t(a), dim=c(2,1,2))
b