Algorithm for turning Voxels into Triangle Mesh
If you want a general algorithm for creating a surface over voxel data, the most common, and normal starting point, is the marching cubes algorithm.

There is an addon that implements this for particles called Cubesurfer, so you could probably write a script to place particles based on your numpy data and then run this. Or you could look at the source (note, it useds Cython for performance reasons)