I don't know why people like using predone functions instead of using their own algorithm.  Anyway, you are using argsort in a bad way. argsort returns an array containing the INDEXES of your elements, thos are 2 examples :
Code 1:
import numpy as geek 
# input array 
in_arr = geek.array([ 2, 0,  1, 5, 4, 1, 9]) 
print ("Input unsorted array : ", in_arr)  
out_arr = geek.argsort(in_arr) 
print ("Output sorted array indices : ", out_arr) 
print("Output sorted array : ", in_arr[out_arr]) 
Output :
Input unsorted array :  [2 0 1 5 4 1 9]
Output sorted array indices :  [1 2 5 0 4 3 6]
Output sorted array :  [0 1 1 2 4 5 9]
Code 2:
# Python program explaining 
# argpartition() function 
import numpy as geek 
# input 2d array 
in_arr = geek.array([[ 2, 0, 1], [ 5, 4, 3]]) 
print ("Input array : ", in_arr)  
# output sorted array indices 
out_arr1 = geek.argsort(in_arr, kind ='mergesort', axis = 0) 
print ("Output sorteded array indices along axis 0: ", out_arr1) 
out_arr2 = geek.argsort(in_arr, kind ='heapsort', axis = 1) 
print ("Output sorteded array indices along axis 1: ", out_arr2) 
Output:
Input array :  [[2 0 1]
 [5 4 3]]
Output sorteded array indices along axis 0:  [[0 0 0]
 [1 1 1]]
Output sorteded array indices along axis 1:  [[1 2 0]
 [2 1 0]]
I am supposing that your data is stored in listnumber
import numpy as np
new_listnumber = listnumber[:, 0]
index_array = np.argsort(new_listnumber , axis=0)
New_val = listnumber[index_array] 
print(New_val)