在Python

时间:2017-11-07 15:07:57

标签: python arrays numpy coordinates

对于任务,我们必须输入飞机机翼厚度与长度比,生成从0到1均匀间隔20点的x数组,计算y坐标(使用下面的代码中的等式),并清楚地显示他们回到用户。我已经开始了,但即使在查看了有关如何在Python中使用数组的其他用户问题后,我也完全迷失了。我的问题是:我从哪里开始?到目前为止,这是我的代码:

import numpy
import math

x = numpy.array([0, 1, 0.05])
y = 0
sqrt = x**(0.5)

tString = input("What is the thickness to length ratio (as a decimal)?")
t = float(tString)

y = (5*t)*((0.2969*sqrt) - (0.1260*x) - (0.3516*(x**2)) + (0.2843*(x**3)) - (0.1015*(x**5)))

1 个答案:

答案 0 :(得分:0)

使用numpy.linspacenumpy.vectorize

import numpy as np #1

x = np.linspace(0, 1, 20) #2
y = np.vectorize(
    lambda x, t: 5 * t * (.2969*x**.5 - .1260*x - .3516*x**2 + .2843*x**3 - .1015*x**5)
) #3

t = float(input("What is the thickness to length ratio (as a decimal)? ")) #4

print(y(x, t)) #5
  1. 使用别名numpy导入np。它在numpy用户中非常常见,因为您可能需要多次编写它。它是一个对流,每次出现可以节省3个字母。
  2. 创建一个从0到1的向量,等间距为20个点。有关详细说明,请参阅numpy.linspace
  3. 创建一个将应用于输入向量的每个元素的函数。它需要两个参数,x(带有你想要应用函数的所有点的向量)和t可以是标量。有关详细说明,请参阅numpy.vectorize
  4. 在单行中询问长度比率,如果只是将字符串转换为浮点数,则无需将字符串存储在变量中。
  5. 打印结果。