我有一个数学函数,其输出由两个变量x
和y
定义。
函数为e^(x^3 + y^2)
。
我想计算1和x
和y
的某个定义的整数之间的每种可能的整数组合,并将它们放置在数组中,以便每个输出与对应的x
对齐值和y
值索引。像这样:
给定:
x = 3
y = 5
输出将是这样的数组:
f(1,1) f(1,2) f(1,3)
f(2,1) f(2,2) f(2,3)
f(3,1) f(3,2) f(3,3)
f(4,1) f(4,2) f(4,3)
f(5,1) f(5,2) f(5,3)
我觉得这是一个容易解决的问题,但我的知识有限。下面的代码是最好的描述。
import math
import numpy as np
equation = math.exp(x**3 + y**2)
#start at 1, not zero
i = 1
j = 1
#i want an array output
output = []
#function
def shape_f (i,j):
shape = []
output.append(shape)
while i < x + 1:
while j < y +1:
return math.exp(i**3 + j**2)
#increase counter
i = i +1
j = j +1
print output
我最近得到了一个空白数组,但我也得到了一个值(用int代替数组)
答案 0 :(得分:1)
我不确定您是否有缩进错误,但似乎您从未对函数shape_f
的输出执行任何操作。您应该将方程式定义为函数,而不是表达式分配。然后,您可以创建一个函数,以按照您的描述填充列表列表。
import math
def equation(x, y):
return math.exp(x**3 + y**2)
def make_matrix(x_max, y_max, x_min=1, y_min=1):
out = []
for i in range(x_min, x_max+1):
row = []
for j in range(y_min, y_max+1):
row.append(equation(i, j))
out.append(row)
return out
matrix = make_matrix(3, 3)
matrix
# returns:
[[7.38905609893065, 148.4131591025766, 22026.465794806718],
[8103.083927575384, 162754.79141900392, 24154952.7535753],
[1446257064291.475, 29048849665247.426, 4311231547115195.0]]
答案 1 :(得分:1)
我们可以使用from bs4 import BeautifulSoup
f = open("template.html", "r")
soup = BeautifulSoup(f.read(), 'html.parser')
f.close()
x = soup.find("div", id="example")
x.string("<div>example</div>")
# x's contents...
# <div id="example"><div>example</div></div>
非常简单地完成此操作。
首先,我们使用numpy
为np.arange
和x
生成从0(以简化索引编制)到最大值的值范围。我们可以以矢量化的方式执行幂运算,以获取y
和x^3
的值。
接下来,我们可以将y^2
应用于np.add
和x^3
的外部乘积,以获得它们的所有可能组合。最后一步是获取结果的自然指数:
y^3
输出:
x_max = 3
y_max = 5
x = np.arange(x_max + 1) ** 3
y = np.arange(y_max + 1) ** 2
result = np.e ** np.add.outer(x, y)
print(result[2, 3]) # e^(2 ** 3 + 3 ** 2)
答案 2 :(得分:0)
一个简单的解决方案是将numpy的broadcasting功能与exp
函数一起使用:
x = 3
y = 5
i = np.arange(y).reshape(-1, 1) + 1
j = np.arange(x).reshape(1, -1) + 1
result = np.exp(j**3 + y**2)
reshape
操作使i
成为具有y
元素的列,而j
成为具有x
元素的行。求幂不会更改这些形状。将两个阵列加在一起时会发生广播。一个数组中的单位尺寸将扩展为另一数组中的相应尺寸。结果是y
×x
矩阵。