¿Cómo convertir la lista de puntos de python a una matriz de imágenes numpy?

Tengo una lista de puntos de python (coordenadas x / y):

[(200, 245), (344, 248), (125, 34), ...] 

Representa un contorno en un plano 2d. Me gustaría usar algunos algoritmos numpy / scipy para el suavizado, la interpolación, etc. Normalmente requieren una matriz numpy como entrada. Por ejemplo scipy.ndimage.interpolation.zoom .

¿Cuál es la forma más sencilla de obtener la matriz de números correcta de mi lista de puntos?

EDITAR: Agregué la palabra “imagen” a mi pregunta, espero que esté clara ahora, lo siento mucho, si de alguna manera fue engañosa. Ejemplo de lo que quise decir (apunta a una matriz de imagen binaria).

Entrada:

 [(0, 0), (2, 0), (2, 1)] 

Salida:

 [[0, 0, 1], [1, 0, 1]] 

Redondeando la respuesta aceptada aquí está la muestra de trabajo :

 import numpy as np coordinates = [(0, 0), (2, 0), (2, 1)] x, y = [i[0] for i in coordinates], [i[1] for i in coordinates] max_x, max_y = max(x), max(y) image = np.zeros((max_y + 1, max_x + 1)) for i in range(len(coordinates)): image[max_y - y[i], x[i]] = 1 

Ah, mejor ahora, así que tienes todos los puntos que quieres llenar … entonces es muy simple:

 image = np.zeros((max_x, max_y)) image[coordinates] = 1 

Podría crear una matriz primero, pero no es necesario.

 numpy.array(your_list) 

Numpy tiene una documentación muy extensa que deberías intentar leer. Puede encontrarlo en línea o escribiendo help(obj_you_want_help_with) (por ejemplo, help(numpy) ) en el REPL.

Basándose en lo que Jon Clements y Dunes dijeron, después de hacer

 new_array = numpy.array([(200, 245), (344, 248), (125, 34), ...]) 

obtendrá una matriz bidimensional en la que la primera columna contiene las coordenadas x y la segunda columna contiene las coordenadas y. La matriz se puede dividir aún más en matrices x e y separadas como esta:

 x_coords = new_array[:,0] y_coords = new_array[:,1]