How can I make a screenshot in the BGE (numpy of pixel values) without saving to disk?
you might try something like this:

import bge

source = texture.ImageRender(world,sensorView_Cam) 

source.capsize = [640,480]

imageArray = texture.imageToArray(source, 'RGB') 

charArray = imageArray.to_list()


works ok for me (Although, i dont know if it is fast enough for you and if there are faster ways)