Convertir une image en tableau 2D en python

Je veux convertir une image 2D tableau à 5 colonnes où chaque ligne est de la forme [r, g, b, x, y]. x, y est la position du pixel et de la r,g,b sont les valeurs des pixels. (Je vais être à l'aide de ce tableau en entrée à une machine modèle d'apprentissage). Est-il plus efficace de mise en œuvre de ce en python?

import Image
import numpy as np

im = Image.open("farm.jpg")
col,row =  im.size
data = np.zeros((row*col, 5))
pixels = im.load()
for i in range(row):
    for j in range(col):
        r,g,b =  pixels[i,j]
        data[i*col + j,:] = r,g,b,i,j

OriginalL'auteur Sanket | 2014-11-19