带有参数排序索引子集的索引数组

问题描述 投票:0回答:1

我正在尝试用 numpy 编写一个决策树学习器。为此,

x
值只需排序一次,之后我应该能够重用它们。
为此,我有一个二维特征数组
x
,我通过
i= np.argsort(x, 0)
获取其中的索引以对它们进行排序。所以
x[i]
返回排序后的列,这很棒。

但是,对于第一次分割后的所有内容,我只需要与节点

n
对应的行。我陷入了如何链接这些索引的困境。

例如,用这个数据

x = np.array([[1,8,7,4,3,9,0,2,5,6], [7,5,3,8,9,4,6,10,2,1]]).T
i = np.argsort(x, 0)
n = np.nonzero(x[:, 0] < 6)[0] 

我想要

x[n]
但列的排序位置。
x[i[n], np.arange(2)]
适用于第一列(掩码
n
基于该列),但第二列包含错误的数据。 首先采用
x[n]
更改形状,之后我无法再使用
i
数组对其进行索引。

我有点迷失在这里,希望得到任何帮助。

python indexing subset np np.argsort
1个回答
0
投票

如果我正确理解你的问题,你可以这样做:

print(x[i][n, :, 0])

打印:

[[0 6]
 [3 9]
 [4 8]
 [6 1]
 [7 4]
 [8 3]]
© www.soinside.com 2019 - 2024. All rights reserved.