Я могу для списка:
mylist = [0.1, 0.2, -.09, -.9, 0.001, -0.001, 0.05, -0.05, .9, .8, -.7 ] Отсортируйте этот список с помощью функции AltSignSort (mylist) и получите:
Out [206]: [-0.9, 0.9, -0.7, 0.8, -0.09, 0.2, -0.05, 0,1, -0,001, 0,05, 0,001]
Обратите внимание, что список отсортирован по чередующемуся знаку с наибольшим смещением от 0 до наименьшего (функция для этого следует).
Я хочу выполнить сортировку столбцов (как описано выше) pandas df. Например, df.corr () дает попарные корреляции для матрицы. Можно ли таким образом отсортировать его столбцы. Спасибо.
def AltSignSort(array):
# Assistance was recieved at https://www.geeksforgeeks.org/
# This code is inspired by an example given by Arnab Kundu
# sort the array in ascending order
array.sort()
# get index to first element of the list
first = 0
first = first + 1
index = 1
while ( index < (len(array) + 1)/2 ):
index = index + 1
# pop last element in the array
val = array[-1]
array.pop()
# insert it after next minimum element
array.insert(first, val)
# increment the pointer for next pair
first = first + 2
return(array)'''