我正在寻求有关过滤numpy数组的帮助。我目前有一个numpy数组,其中包含以下信息:
[[x1_1, x1_2, ..., x1_n], [x2_1, x2_2, ..., x2_n], [y1, y2, ..., yn]
即。数组本质上是一个数据集,其中 x1,x2 是要素(坐标),y是输出(值)。每个数据点都有一个适当的 x1,x2 和 y ,因此,例如,与数据点 i 对应的信息是 x1_i ,x2_i 和 yi 。
现在,我想通过y过滤来提取所有数据点,这意味着我想知道所有数据点,其中y>一些价值。在我的情况下,我想要所有情况下的信息(仍然具有相同的numpy结构),其中y> 0.我真的不知道该怎么做 - 我一直在玩布尔索引,例如d[0:2,y>0]
或d[d[2]>0]
,但没有得到任何地方。
一个澄清的例子:
给定数据集:
d = [[0.1, 0.2, 0.3], [-0.1,-0.2,-0.3], [1,1,-1]]
我将所有点或实例拉到y > 0
,即。 d[2] > 0
,它应返回值:
[[0.1, 0.2],[-0.1,-0.2],[1,1]]
任何建议或帮助都将不胜感激。
答案 0 :(得分:3)
您可以使用:
import numpy as np
d = np.array([[0.1, 0.2, 0.3], [-0.1,-0.2,-0.3], [1,1,-1]])
print (d)
[[ 0.1 0.2 0.3]
[-0.1 -0.2 -0.3]
[ 1. 1. -1. ]]
#select last row by d[-1]
print (d[-1]>0)
[ True True False]
print (d[:,d[-1]>0])
[[ 0.1 0.2]
[-0.1 -0.2]
[ 1. 1. ]]