python numpy切片的R等价项:[:,None,:]

2024-04-20 13:05:09 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个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

Tags: nonenp方式矩阵数组arraymatrixdim
1条回答
网友
1楼 · 发布于 2024-04-20 13:05:09

好像你真的想得到一个2x1x2的阵列?因此,在R中,您需要将矩阵转换为一个数组(这些是单独的类),为新数组指定您想要的维度。你知道吗

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

相关问题 更多 >