Python: эффективное преобразование неотрицательных целых чисел от 0 до 1 - PullRequest
0 голосов
/ 03 марта 2019

Как эффективно преобразовать список целых чисел в число от 0 до 1, например:

[0] -> [0]
[9] -> [0.9]
[9, 19] -> [0.09, 0.19]
[9, 19, 1000] -> [0.0009, 0.0019, 0.1]

Я думаю:

def integer_to_0_1(numpy_array):
    divisor = 10 ** len(str(np.max(numpy_array)))
    return numpy_array/divisor

Причина

Я создаю идентификатор в кадре данных pandas из 2 других столбцов, но я хочу, чтобы этот идентификатор можно было сортировать.Таким образом, вместо создания идентификатора в виде строки типа "col1_col2", я подумал, что если я сделаю его как число типа col1.col2, он легко сортируется и информация о заказе не теряется.Например,

---------------              ------------
| col1 | col2 |              | ID       |
| 0    | 0    |      ->      | 0        | 
| 0    | 110  |              | 0.110    |
| 2332 | 3    |              | 2332.003 |

1 Ответ

0 голосов
/ 04 марта 2019

Ниже приведен способ сопоставления списка значений с [0,1].(0 и 1 включительно)

def convert(numpy_array):
    return (numpy_array- np.min(numpy_array))/(np.max(numpy_array) - np.min(numpy_array))

Вы можете отобразить массив [3, 4, 5, 2, 7] следующим образом.

[0.2 0.4 0.6 0.  1. ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...