【问题标题】:Stuck programming with arrays in Python在 Python 中使用数组进行编程
【发布时间】:2017-11-07 15:07:56
【问题描述】:

对于一个作业,我们必须输入一个飞机机翼的厚度与长度的比率,生成一个从 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)))

【问题讨论】:

标签: python arrays numpy coordinates


【解决方案1】:

使用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. 使用别名np 导入numpy。这在numpy 用户中很常见,因为您可能需要多次编写它。这是一个对流,每次出现可以为您节省 3 个字母。
  2. 创建一个从 0 到 1 的向量,其中 20 个点等距。有关更多文档,请参阅 numpy.linspace
  3. 创建一个将应用于输入向量的每个元素的函数。它有两个参数,x(包含要应用函数的所有点的向量)和可以是标量的 t。有关更多文档,请参阅 numpy.vectorize
  4. 单行求长度比,如果只是将字符串转换成浮点数,则无需将字符串存储在变量中。
  5. 打印结果。

【讨论】:

    猜你喜欢
    • 2013-06-19
    • 2018-12-12
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    相关资源
    最近更新 更多