VisibleDeprecationWarning: el índice booleano no coincidió con la matriz indexada en la dimensión 1; la dimensión es 2 pero la dimensión booleana correspondiente es 1

Después de una actualización de Macports, que creo que se actualizó numpy, recibo la advertencia:

VisibleDeprecationWarning: boolean index did not match indexed array along dimension 1; dimension is 2 but corresponding boolean dimension is 1 inliers = n.size(pixels[distances <= self.dst]) 

Eso no fue levantado antes. El código relacionado es:

 # Compute distance of all non-zero points from the circumference distances = guess_feature.points_distance(pixels) # Check which points are inliers (ie near the circle) inliers = n.size(pixels[distances <= self.dst]) 

self.dst es un solo escalar.

guess_feature.points_distance :

 def points_distance(self,points): r''' Compute the distance of the points from the feature :math:`d = \left| \sqrt{(x_i - x_c)^2 + (y_i-y_c)^2} - r \right|` Args: points (numpy.ndarray): a (n,2) numpy array, each row is a 2D Point. Returns: d (numpy.ndarray): the computed distances of the points from the feature. ''' xa = n.array([self.xc,self.yc]).reshape((1,2)) d = n.abs(dist.cdist(points,xa) - self.radius) return d 

¿Algunas ideas?

Comencé a recibir un error similar después de subir a numpy 1.10.1. Creo que puede deshacerse de la advertencia simplemente envolviendo la matriz booleana en un numpy.where ().

 inliers = n.size(pixels[n.where(distances <= self.dst)]) 

Ya que solo estás tomando el tamaño, no hay necesidad de usar la matriz de píxeles, así que esto debería funcionar:

 inliers = n.size(n.where(distances <= self.dst])[0])