Создание массива на основе сюжета пользовательской функции (Python) - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь использовать Numpy для создания вектора y, который будет соответствовать следующему графику:

enter image description here

Значения x будут варьироваться от 0 до 24, значения y должны быть:

от 0 до 6 будет 0

от 6 до 18 будет своего рода параболой

18 до 24 снова будет 0

Какой хороший способ сделать это? У меня пока нет практических идей (я думал о какой-то интерполяции).

Спасибо!

1 Ответ

0 голосов
/ 04 мая 2018

Я сделал это, предполагая, что вы хотите иметь форму круга вместо параболы (в зависимости от вашей схемы).

import numpy as np

length = 24
radius = 6

x = np.arange(length)
y = np.sqrt(radius**2-(x-(length/2))**2)
y = np.nan_to_num(y)

print(x)
# [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
print(y)
# [0.         0.         0.         0.         0.         0.
#  0.         3.31662479 4.47213595 5.19615242 5.65685425 5.91607978
#  6.         5.91607978 5.65685425 5.19615242 4.47213595 3.31662479
#  0.         0.         0.         0.         0.         0.        ]
...