Filled 3D numpy mask
If you have surface cells marked and there si no additional information, then scan array layer by layer to get the first marked cell (or get some surface cell if they are known).
When you have marked A[z,y,x] surface cell, fill line in the last dimension (x) 1d array until new marked cell is met.
Then find neighbor marked cell in the same top-level layer (same z, close y ans x) and repeat to fill lines until whole section (ellipse or cutted ellipse) is filled, then continue with the next z layer
Edit
Perhaps I overcomplicate the problem, and FloodFill algo is simple solution.
I have a binary (0-1) 3D numpy array, which I plan to use for masking a 3D image. The mask at the moment consists in the area of a cylinder. The two centres of the faces are two arbitrary points, and the axis is not parallel to x, y or z.
How can I fill the cylinder with a pure numpy solution?