我需要从 numpy 数组的特定列中过滤掉具有异常值的行。
在论坛上我发现了这样一行
f_data = data[data[:,3]==1,:]
虽然它似乎有效,但我真的不明白如何也无法真正复制它。
如果有人能打破这条线并解释它,我将不胜感激。
此命令不会特别过滤异常值。如果第四列中的值为 1,它只选择二维数组(或 N>2 的 ND)中的行。
因此,除非当该行在您的数据集中中不是异常值时,此列是带有 1 的标志,否则该代码可能不适用于您。
例子:
data = np.array([[1, 1, 1, 1],
[1, 1, 1, 0],
[0, 1, 1, 1],
[0, 1, 0, 0],
[0, 0, 0, 1]])
# only keep the rows with 1 in the 4th column:
f_data = data[data[:,3]==1,:]
array([[1, 1, 1, 1],
[0, 1, 1, 1],
[0, 0, 0, 1]])