numpy vs native Python - most efficient way
When there's a choice between working with NumPy array and numeric lists, the former are typically faster.
I don't quite understand the second question, so won't try to address it.
For a lot of functions, it is possible to use either native Python or numpy to proceed. 
This is the case for math functions, that are available with Python native import math, but also with numpy methods. This is also the case when it comes to arrays, with narray from numpy and pythons list comprehensions, or tuples. 
I have two questions relative to these features that are in Python and also in numpy

in general, if method is available in native Python AND numpy, which of both solutions would you prefer ? In terms of efficiency ? Is it different and how Python and numpy would differ in their proceeding?
More particularly, regarding arrays, and basic functions that are dealing with arrays, like sort, concatenate..., which solution is more efficient ? What makes the efficiency of the most efficient solution?

This is very open and general question. I guess that will not impact my code greatly, but I am just wondering.