I have a complex signal of which I want to take the FFT of. Using Mathematica I got the following result:
(* Some acquisition params *)
fS = 100. 10^6;
time = 10. 10^-6;
NbrSamp = Round[fS * time];
(* Generate signal *)
w0 = 2 \[Pi] 80 10^6;
ti = Subdivide[0., time, NbrSamp];
sig = Cos[w0 ti] + \[ImaginaryI] Sin[w0 ti];
(* Plot result of FFT *)
ListPlot[Abs@Fourier[sig], Joined -> True, PlotRange -> All, DataRange -> {0, fS}]

However, when performing the same calculations in Python I get a "flipped" spectra compared to Mathematica. In order to get the same spectra I have to flip the output from the FFT. My code reads:
import numpy as np
import matplotlib.pylab as plt
from scipy.fft import fft
# Some acquisition params
fs = 100e6
time = 10e-6
NbrSamp = round(fs*time)
# Generate signal
w0 = 2*np.pi*80e6
ti = np.arange(NbrSamp+1) / fs
sig = np.cos(w0*ti) + 1j*np.sin(w0*ti)
# calc FFT
sigFFT = fft(sig, norm = 'ortho')
freq = np.arange(0, NbrSamp+1) * fs / NbrSamp
# Plot result of FFT
plt.plot(freq, abs(sigFFT), label = "Actual result")
plt.plot(freq, abs(sigFFT[::-1]), label = "Flipped result")
plt.xlim(min(freq), max(freq))
plt.legend()
plt.show()

My question is then why this is and how can I obtain the same results as in Mathematica using Python, without having to flip the data obtained from the FFT? I will have a large number of such signals and therefore I would like to avoid this flip operation.