Получение списка из n чисел от x до y - PullRequest
1 голос
/ 19 июня 2019

Я пытаюсь реализовать фрагмент кода с Python3, который генерирует список n одинаково расположенных чисел (которые могут быть рациональными), которые находятся в диапазоне между двумя указанными числами.

Например: если n = 3, x = -1 и y = 1, результат должен быть [-1,0,1].

Я предполагаю, что это должно использовать numpy's arange с шагом, рассчитанным из этих трех значений, но я не могу понять математику. В этом простом примере шаг будет = 1, но если x = 0 и y = 1, шаг будет .5.

Ответы [ 3 ]

4 голосов
/ 19 июня 2019

Вы можете сделать это без numpy, используя простой генератор:

def numbers(x, y, n):
    assert n > 1
    step = (y - x) / (n - 1)
    for i in range(n):
        yield x + i*step

print(list(numbers(-1, 1, 3)))  # [-1, 0.0, 1.0]
print(list(numbers(0, 1, 3)))  # [0, 0.5, 1.0]
1 голос
/ 19 июня 2019

Похоже, что вы ищете np.linspace(), который вы можете прочитать о здесь .

Например, вызов np.linspace(-1, 1, 3) приведет к array([-1., 0., 1.]), как вы хотели.

0 голосов
/ 19 июня 2019

как заметил по ошибке, это проблема, которая может быть легко решена без внешних пакетов, мое решение ниже:

def partition(min,max,n):
    list=[]
    for i in range (n):
        list.append((max-min)*i/(n-1))
    return list
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...