Playing around with some numbers may help:
from math import remainder, fmod
# in case x is a multiple of y
remainder(20, 4) # 0.0
fmod(20, 4) # 0.0
# in any other case
remainder(20, 3) # -1.0
fmod(20, 3) # 2.0
So what we see here is that the remainder, as stated in the docs, returns the difference between x and the closest integer multiple of y. As 20 lies between 18 and 21 (the 6- and 7-multiples of 3), it chooses whichever is closer to x. In this case it is 21, so the difference between x and 21 is -1.0.
In contrast, fmod returns the result of 20 mod 3, which is 2.0. I explicitly do not use the % operator, as the docs state that the result may differ.
Videos
The result you got was a complex number because you exponentiated a negative number. i and j are just notational choices to represent the imaginary number unit, i being used in mathematics more and j being used in engineering more. You can see in the docs that Python has chosen to use j:
https://docs.python.org/2/library/cmath.html#conversions-to-and-from-polar-coordinates
Here, j is the same as i, the square root of -1. It is a convention commonly used in engineering, where i is used to denote electrical current.
The reason complex numbers arise in your case is that you're raising a negative number to a fractional power. See How do you compute negative numbers to fractional powers? for further discussion.