我有一个具有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以外的所有其他内容,而不更改原始数组。谢谢
答案 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]将不起作用,因为只会选择对角线元素(结果是数组而不是矩阵)