从numpy数组中选择特定的行和列

时间:2019-02-28 18:00:20

标签: python

我有一个具有26行和26列的numpy数组。我想选择除第15行以外的所有行和除第15列以外的所有列。有什么方法可以做到这一点?

import numpy as np
a = np.arange(676).reshape((26,26))

第15行     b = a [14]

第15列

c = a[:,14]

都应从a中删除。

是否可以通过广播来做到这一点?我不想删除行和列,也不想通过切片想要的部分并使用vstack来制作新的矩阵,因为我觉得这是一个不太优雅的解决方案。我想选择除b和c以外的所有其他内容,而不更改原始数组。谢谢

4 个答案:

答案 0 :(得分:0)

您可以使用逻辑索引

BClass::someMethod

答案 1 :(得分:0)

您可以使用{$project: { result : { "$let" : { "vars" : { "id" : "$ancestors" }, "in" : ObjectId('$$id') } } } }

ObjectId

参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.delete.html

答案 2 :(得分:0)

您可以通过应用条件选择除一个以外的所有行和列。根据您的情况,您可以选择第15个以外的所有行和列

import numpy as np
a = np.arange(676).reshape((26,26))
x = np.arrange(26)
y = np.arrange(26)
c = a[x != 14, :]
c = c[:, y != 14]

这将选择除第15个行和列以外的所有行和列。

答案 3 :(得分:0)

import numpy as np
a = np.arange(676).reshape((26,26))

首先,我们需要定义所需的行:

index = np.arange(a.shape[0]) != 14 # all rows but the 15th row

我们可以为列使用相同的索引,因为我们选择了相同的行和列,并且a是方矩阵

现在,我们可以使用np.ix_函数来表示我们希望所有选定的行和列。

a[np.ix_(index, index)] #a.shape =(25, 25)

请注意,a [index,index]将不起作用,因为只会选择对角线元素(结果是数组而不是矩阵)