Как увеличить дисперсию ряда (массива чисел)? Суть задачи в следующем, есть массив чисел (скажем 70 элементов), все типа byte (от 0 до 255), проблема в том что данные отличаются недостаточно сильно, то есть к примеру минимальное 1, максимальное 20 (но может быть и 255 в конкретном случае), хотелось бы увеличить "контрастность" чисел так чтобы максимальное осталось таким как было (не увеличилось) а остальные изменились, маленькие стали еще меньше средние уменьшились, но не слишком сильно, чтобы это было равномерно. Пытался сообразить какие манипуляции с этими данными, чтобы такое провернуть, но не могу математически сформулировать, тут скорее всего нужно применить тригонометрические функции, но с ней у меня плоховато) В гуглах ничего похожего не встретил, если кто знаком или хорошо в этом разбирается, есть идеи как можно массив обработать?

21 Авг 2019 в 06:12
260 +1
1
Ответы
1

Одним из возможных способов увеличения разброса значений в массиве чисел является применение функции, которая будет изменять каждый элемент массива в зависимости от его текущего значения.

Например, можно использовать следующую математическую функцию для изменения значений в массиве:

import numpy as np
# Генерирование случайного массива чисел
array = np.random.randint(0, 256, 70)
# Функция для увеличения разброса значений
def increase_variance(x):
return np.sin(x/256 * np.pi) * 256
# Применение функции к каждому элементу массива
new_array = np.array([increase_variance(x) for x in array])
print(new_array)

В данном примере используется функция np.sin(x/256 * np.pi) * 256, которая изменяет значения элементов массива таким образом, что маленькие значения становятся еще меньше, а средние уменьшаются равномерно. Путем экспериментов с этой и другими функциями вы можете найти наиболее подходящий способ увеличения разброса значений в вашем массиве.

20 Апр 2024 в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир