基于自定义函数(Python)创建数组

时间:2018-05-04 09:21:11

标签: python numpy interpolation

我正在尝试使用Numpy创建一个y向量,该向量将对应于以下图:

enter image description here

x值将从0到24,y值应为:

0到6将为0

6到18将是一种抛物线

18到24将再次为0

有什么好办法吗?我还没有任何实际的想法(我考虑过某种插值)。

谢谢!

1 个答案:

答案 0 :(得分:1)

我假设你想要一个圆形而不是一个抛物线(基于你的方案),我已经做到了。

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.        ]