我正在使用numpy,并希望在不丢失维度信息的情况下索引一行。
谢谢!
import numpy as np
X = np.zeros((100,10))
X.shape # >> (100, 10)
xslice = X[10,:]
xslice.shape # >> (10,)
在这个例子中,xslice现在是1维的,但我希望它是(1,10)的维度。
在R中,我会使用X [10,:, drop = F]。在numpy中是否有类似的东西。我在文档中找不到它,并且没有看到类似的问题被问到。谢谢!
x = np.array([[1,2,3,4]])
,如果你用x[[0],[1,2]]
对其进行切片,你将获得一维数组array([2, 3])
。我认为,在选择列向量或行向量时,最好使切片简单化,然后使用np.reshape
。因此,在我的示例中,它将是np.reshape(x[0,[1,2]],[1,2])
。 - AlexanderX[[10]]
会被解释为X[10]
,并且形状会变小;同样,X[[10, 20]] == X[10, 20]
,形状更小。 - Ben Usmana
,那么a[0, :, [0]]
的形状将为(1, 20)
而不是(20, 1)
,因为后者中的索引会被广播到a[[0], :, [0]]
,这通常不是您所期望的!而a[0, :, :1]
将按预期给出(20, 1)
。此外,请参见上面的注释以了解单个索引的奇怪边缘情况。总体而言,似乎这种方法具有过多的边缘情况。 - Ben Usman