我有一个数学函数,它的输出由两个变量定义,x
和y
。你知道吗
函数是e^(x^3 + y^2)
。你知道吗
我想计算1和x
和y
的某个定义整数之间的每一个可能的整数组合,并将它们放在一个数组中,以便每个输出都与coobresponding 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而不是数组)
我不确定您是否有缩进错误,但看起来您从未对函数
shape_f
的输出执行任何操作。你应该把方程定义为函数,而不是表达式赋值。然后,您可以创建一个函数来填充所描述的列表列表。你知道吗一个简单的解决方案是使用numpy的broadcasting特性和^{} 函数:
^{} 操作使
i
成为包含y
元素的列,j
成为包含x
元素的行。指数运算不会改变这些形状。将两个数组相加时会发生广播。一个数组中的单位维度会扩展到另一个数组中相应的维度。结果是y
-by-x
矩阵。你知道吗我们可以非常简单地用
numpy
来实现这一点。你知道吗首先,我们使用
np.arange
为x
和y
生成从0(以简化索引)到最大值的值范围。我们可以以向量化的方式执行指数运算,得到x^3
和y^2
的值。你知道吗接下来,我们可以在
x^3
和y^3
的外积上应用np.add
,得到它们的每一个可能的组合。最后一步是计算结果的自然指数:输出:
相关问题 更多 >
编程相关推荐