Python 创建一个二维数组,该数组是两个函数的乘积

Python 创建一个二维数组,该数组是两个函数的乘积,python,math,visualization,equations,Python,Math,Visualization,Equations,我正在进行可视化工作,并试图创建一个2D数组,该数组是X轴上的归一化高斯函数和Y轴上的归一化指数函数的乘积(使用Python)。我将用于此。您可以使用np.meshgrid创建(X,Y)轴,并使用NumPy的矢量化函数在这些坐标上创建函数。下面的数组f是您的二维数组,这里包含exp(-X/4)和exp(-Y-2)/1.5)**2)的乘积。(在此处替换您自己的规范化函数。) 如果您不能或不想使用NumPy,则必须手动循环并使用常规的math函数: import math dx, dy = 0.1

我正在进行可视化工作,并试图创建一个2D数组,该数组是X轴上的归一化高斯函数和Y轴上的归一化指数函数的乘积(使用Python)。

我将用于此。您可以使用
np.meshgrid
创建
(X,Y)
轴,并使用NumPy的矢量化函数在这些坐标上创建函数。下面的数组
f
是您的二维数组,这里包含
exp(-X/4)
exp(-Y-2)/1.5)**2)
的乘积。(在此处替换您自己的规范化函数。)

如果您不能或不想使用NumPy,则必须手动循环并使用常规的
math
函数:

import math
dx, dy = 0.1, 0.05
nx, ny = 101, 101
f = [[None]*nx for i in range(ny)]
for ix in range(nx):
    x = xmin + dx*ix
    for iy in range(ny):
        y = ymin + dy*iy
        f[iy][ix] = math.exp(-x/4.) * math.exp(-((y-2)/1.5)**2)
我会用这个。您可以使用
np.meshgrid
创建
(X,Y)
轴,并使用NumPy的矢量化函数在这些坐标上创建函数。下面的数组
f
是您的二维数组,这里包含
exp(-X/4)
exp(-Y-2)/1.5)**2)
的乘积。(在此处替换您自己的规范化函数。)

如果您不能或不想使用NumPy,则必须手动循环并使用常规的
math
函数:

import math
dx, dy = 0.1, 0.05
nx, ny = 101, 101
f = [[None]*nx for i in range(ny)]
for ix in range(nx):
    x = xmin + dx*ix
    for iy in range(ny):
        y = ymin + dy*iy
        f[iy][ix] = math.exp(-x/4.) * math.exp(-((y-2)/1.5)**2)
我会用这个。您可以使用
np.meshgrid
创建
(X,Y)
轴,并使用NumPy的矢量化函数在这些坐标上创建函数。下面的数组
f
是您的二维数组,这里包含
exp(-X/4)
exp(-Y-2)/1.5)**2)
的乘积。(在此处替换您自己的规范化函数。)

如果您不能或不想使用NumPy,则必须手动循环并使用常规的
math
函数:

import math
dx, dy = 0.1, 0.05
nx, ny = 101, 101
f = [[None]*nx for i in range(ny)]
for ix in range(nx):
    x = xmin + dx*ix
    for iy in range(ny):
        y = ymin + dy*iy
        f[iy][ix] = math.exp(-x/4.) * math.exp(-((y-2)/1.5)**2)
我会用这个。您可以使用
np.meshgrid
创建
(X,Y)
轴,并使用NumPy的矢量化函数在这些坐标上创建函数。下面的数组
f
是您的二维数组,这里包含
exp(-X/4)
exp(-Y-2)/1.5)**2)
的乘积。(在此处替换您自己的规范化函数。)

如果您不能或不想使用NumPy,则必须手动循环并使用常规的
math
函数:

import math
dx, dy = 0.1, 0.05
nx, ny = 101, 101
f = [[None]*nx for i in range(ny)]
for ix in range(nx):
    x = xmin + dx*ix
    for iy in range(ny):
        y = ymin + dy*iy
        f[iy][ix] = math.exp(-x/4.) * math.exp(-((y-2)/1.5)**2)

我会使用numpy来实现这一点,因为numpy使做你想做的事情变得非常简单。如果您不能使用它,那么下面的方法应该可以使用:

import math

def gauss(x, mu=0.0, sigma=1.0):
    return 1.0 / math.sqrt(2.0*math.pi*sigma**2) * math.exp(-0.5*(x-mu)**2/sigma**2)

def exponential(x, lam=1.0):
    return lam * math.exp(-lam * x)

# X values from -10 to 10 with 0.01 step size
xvals = [x * 0.01 for x in range(-1000, 1001)]
# Y values from 0 to 10 with 0.01 step size
yvals = [y * 0.01 for y in range(0, 1001)]
# Calculate your function at the grid points
f = [[gauss(x)*exponential(y) for x in xvals] for y in yvals]

我会使用numpy来实现这一点,因为numpy使做你想做的事情变得非常简单。如果您不能使用它,那么下面的方法应该可以使用:

import math

def gauss(x, mu=0.0, sigma=1.0):
    return 1.0 / math.sqrt(2.0*math.pi*sigma**2) * math.exp(-0.5*(x-mu)**2/sigma**2)

def exponential(x, lam=1.0):
    return lam * math.exp(-lam * x)

# X values from -10 to 10 with 0.01 step size
xvals = [x * 0.01 for x in range(-1000, 1001)]
# Y values from 0 to 10 with 0.01 step size
yvals = [y * 0.01 for y in range(0, 1001)]
# Calculate your function at the grid points
f = [[gauss(x)*exponential(y) for x in xvals] for y in yvals]

我会使用numpy来实现这一点,因为numpy使做你想做的事情变得非常简单。如果您不能使用它,那么下面的方法应该可以使用:

import math

def gauss(x, mu=0.0, sigma=1.0):
    return 1.0 / math.sqrt(2.0*math.pi*sigma**2) * math.exp(-0.5*(x-mu)**2/sigma**2)

def exponential(x, lam=1.0):
    return lam * math.exp(-lam * x)

# X values from -10 to 10 with 0.01 step size
xvals = [x * 0.01 for x in range(-1000, 1001)]
# Y values from 0 to 10 with 0.01 step size
yvals = [y * 0.01 for y in range(0, 1001)]
# Calculate your function at the grid points
f = [[gauss(x)*exponential(y) for x in xvals] for y in yvals]

我会使用numpy来实现这一点,因为numpy使做你想做的事情变得非常简单。如果您不能使用它,那么下面的方法应该可以使用:

import math

def gauss(x, mu=0.0, sigma=1.0):
    return 1.0 / math.sqrt(2.0*math.pi*sigma**2) * math.exp(-0.5*(x-mu)**2/sigma**2)

def exponential(x, lam=1.0):
    return lam * math.exp(-lam * x)

# X values from -10 to 10 with 0.01 step size
xvals = [x * 0.01 for x in range(-1000, 1001)]
# Y values from 0 to 10 with 0.01 step size
yvals = [y * 0.01 for y in range(0, 1001)]
# Calculate your function at the grid points
f = [[gauss(x)*exponential(y) for x in xvals] for y in yvals]


你没有要求任何东西。我正在寻找有关生成此数组的代码的帮助。你没有要求帮助,而是要求代码。你做了什么?你哪里有问题?StackOverflow不是让别人做你的家庭作业,也不是我的家庭作业。我是一名从事可视化设计的设计师。我已经定义了我试图解决的问题,但我没有任何将数学转换为代码的经验(或数学方面的经验)。您没有要求任何东西。我正在寻求代码帮助以生成此数组。您不是在寻求帮助,而是在问求代码。你做了什么?你哪里有问题?StackOverflow不是让别人做你的家庭作业,也不是我的家庭作业。我是一名从事可视化设计的设计师。我已经定义了我试图解决的问题,但我没有任何将数学转换为代码的经验(或数学方面的经验)。您没有要求任何东西。我正在寻求代码帮助以生成此数组。您不是在寻求帮助,而是在问求代码。你做了什么?你哪里有问题?StackOverflow不是让别人做你的家庭作业,也不是我的家庭作业。我是一名从事可视化设计的设计师。我已经定义了我试图解决的问题,但我没有任何将数学转换为代码的经验(或数学方面的经验)。您没有要求任何东西。我正在寻求代码帮助以生成此数组。您不是在寻求帮助,而是在问求代码。你做了什么?你哪里有问题?StackOverflow不是让别人做你的家庭作业,也不是我的家庭作业。我是一名从事可视化设计的设计师。我已经定义了我试图解决的问题,但是我没有任何将数学翻译成代码的经验(或者很多数学经验)。太好了。非常感谢。有没有一个没有NumPy的简单实现?请看我的编辑:这并不难,但确实需要一些额外的工作。非常感谢。有没有一个没有NumPy的简单实现?请看我的编辑:这并不难,但确实需要一些额外的工作。非常感谢。有没有一个没有NumPy的简单实现?请看我的编辑:这并不难,但确实需要一些额外的工作。非常感谢。有没有一个没有NumPy的简单实现?请参阅我的编辑:这不是很难做到,但确实需要一些额外的工作