Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找具有零值的行索引_Python_Arrays_Python 2.7_Numpy - Fatal编程技术网

Python 查找具有零值的行索引

Python 查找具有零值的行索引,python,arrays,python-2.7,numpy,Python,Arrays,Python 2.7,Numpy,我有一个(N,2)数组,表示一些图像坐标。我只想提取两个值为零的行 例如,在此阵列中: aux = np.array([[0.,-0.0001], [0.0,0.0], [0.0,0.0], [123,0.0]]) 因此,我需要一个numpy数组,指示整行有零: 结果:np.数组([1,2]) 到现在为止,我一直和你在一起 但我并不认为输出是一个元组。第二个数组是什么?我想您可以使用np来实现这一点 np.all(aux == 0, axis=1) 这将返回一个布尔数组,其中两个值为0: a

我有一个(N,2)数组,表示一些图像坐标。我只想提取两个值为零的行

例如,在此阵列中:

aux = np.array([[0.,-0.0001], [0.0,0.0], [0.0,0.0], [123,0.0]])
因此,我需要一个numpy数组,指示整行有零:

结果:np.数组([1,2])

到现在为止,我一直和你在一起


但我并不认为输出是一个元组。第二个数组是什么?

我想您可以使用
np来实现这一点

np.all(aux == 0, axis=1)
这将返回一个布尔数组,其中两个值为
0

array([False,  True,  True, False], dtype=bool)
您可以使用
np提取相应索引的数组(匹配所需的输出)。其中

np.where(np.all(aux == 0, axis=1))

(array([1, 2]),)

在Python中使用Lambdas,可以这样解决:

aux = np.array ([[0., - 0.0001], [0.0,0.0], [0.0,0.0], [123,0.0]])
首先,必须使用lambda表达式定义逻辑, 您要查找的条件是:

f = lambda x: x [0]==0 and x [1] == 0
map()是一个python函数,它将lambda表达式应用于每个元素

map (f, aux)
在满足条件的情况下,输出将是一个布尔向量,为True

[False, True, True, False]
这适用于Python2.7,但不适用于Python3.6

对于python 3.6,您将需要额外的步骤:

iter = map (f, aux)

for item in iter
   print (item)
您将得到相同的结果:

False
True
True
False
False
True
True
False