Real Fast Fourier Transformation (FFT) in 2D changes with changing the axes order I am using Python to calculate the real FFT for a 2D array. I found that the real FFT function does not return an array with the same size as the input array, rather, it returns an array with the same size as the first axes and half of the size of the second axes or vise verse based on the axes order that we choose. 

I attached the complex FFT, real FFT with axes order (0,1), and real FFT with axes order (1,0) of an array with size(1400x144). See the difference between the second and the third image. Any idea why that happens, and what does it mean in terms of the linear property of the FFT. Thanks
A real, 1D DFT is fully described by the non-negative frequencies, since real DFTs are symmetric about the 0 frequency bin.

The function you linked is only computing the FFT along one dimension, and is only returning the non-negative frequency bins.

From the manual page:

"Notice how the final element of the fft output is the complex conjugate of the second element, for real input. For rfft, this symmetry is exploited to compute only the non-negative frequency terms."

You can use symmetry to fill in the other half of the result, if you need it.