Sussed it.
OK, finally, we were allowed to install Numpy, etc. in one of our mailboxes, and this made it possible to fully explain your initial message.
The short answer is that your initial questions are, in a sense, the "wrong question." In addition, one of the participants did a lot of annoying abuse and misinformation, and these mistakes and fabrications deserve attention so that someone does not make a mistake, considering them and their cost.
In addition, I decided to send this answer as a separate answer, instead of editing my answer of April 14 for the reasons given below and decency.
Part A: Response to OP
First of all, we are talking about a question in the original post: you can recall that I could only comment on wrt on the side of Fortran, since our rules are strict regarding what software can be installed and where on our machines, and we do not have Python etc. (just now). I have also repeatedly stated that the nature of your result was interesting in terms of what we can call it a curved character or, possibly, a concavity.
In addition, working exclusively with ārelativeā results (since you did not publish absolute timings, and I didnāt have Numpy at that time), I pointed out several times that some important information might be hidden in them.
That is exactly so.
Firstly, I wanted to be sure that I can reproduce your results, since we do not use Python / F2py normally, it is not clear what compiler options, etc. implied in your results, so I performed many tests of course, we are talking about apples, apples (my answer of April 14 showed that Debug vs Release / O2 is of great importance).
Figure 1 shows my Python results for only three cases: your original Python / Numpy internal routine (call it P, I just cut / paste your original), your original Do based Fortran s / r that you published (name this FDo, I just copied / pasted your original, as before), and one of the options that I suggested earlier, relying on sections of the array and thus requiring Sum () (let's call this FSAS created by editing the original FDo). Figure 1 shows the absolute timings through timeit. 
Figure 2 shows the relative results based on your relative Python / Numpy (P) timings strategy. Only two (relative) Fortran variants are displayed. 
It is clear that those who reproduce the character in your original plot, and we can be sure that my tests seem to be consistent with your tests.
Now your original question: "Why is Fortran speed approaching Numpy with an increase in the size of arrays?"
This is actually not the case. This is a pure artifact / distortion based solely on the ārelativeā timings that can give this impression.
Looking at Figure 1, with absolute timings, it is clear that Numpy and Fortran diverge. So, in fact, Fortran's results are moving away from Numpy or vice versa if you want.
The best question, and one that has repeatedly arisen in my previous comments, is why are these upward bends in the first place (for example, linear)? My previous results only at Fortran showed a āmostlyā flat relative performance ratio (the yellow lines in my diagram / answer for April 14th April), and so I suggested that there was something interesting on the Python side and suggested checking this out.
One way to show this is another relative measure. I divided each (absolute) series with its own highest value (i.e., At n_comp = 10k) to see how this āinternal relativeā performance unfolds (they are called 10k values āārepresenting timings for n_comp = 10,000), Figure 3 shows these results for P, FDo, and FSAS as P / P10k, FDo / FDo10k, and FSAS / FSAS10k. For clarity, the y axis has a logarithmic scale. It is understood that Fortran blank options are relatively much better with decreasing n_comp cf P results (for example, annotated red circle). 
In another way, Fortran is very (non-linear) more efficient at reducing array size. It is not clear why Python will be much worse with n_comp decreasing ... but there it can be a problem with internal utility / settings, etc., As well as differences between interpreters and compilers, etc.
So, itās not that Fortran is ācatching upā with Python, quite the contrary, it continues to distance itself from Python (see Figure 1). However, differences in non-linearities between Python and Fortran with a decrease in n_comp produce ārelativeā timings with a clearly contradictory and non-linear character.
Thus, as n_comp and each method increase, it āstabilizesā to a more or less linear mode, the curves align to show that their differences grow linearly, and the relative relations are consistent with an approximate constant (ignoring memory problems, problems with smp, etc. .) ... this is easier to see if n_comp> 10k is allowed, but the yellow line in the response on April 14 already shows this only for files with Fortran support.
Other than that, I prefer to create my own temporary procedures / functions. timeit seems convenient, but much happens inside this black box. Customizing your own loops and structures, as well as having the properties / resolution of your synchronization functions, is important for a proper evaluation.