If you are only interested in the function values at physical coordinates where there are degrees of freedom, you can access the function vector directly.
u=Function(V)
arr= u.vector().get_local()
The order in the array follows
X= V.tabulate_dof_coordinates()
Evaluate basis is used because if you evaluate a function at a non-dof coordinate, a linear combination of dof values has to be made