【发布时间】:2018-10-09 03:57:50
【问题描述】:
此代码在二维 x,y 网格上输出 e^(-r^2) 的图:
import numpy as np
import matplotlib.pyplot as plt
x1d = np.arange(-3, 3, 0.006)
y1d = np.arange(-3, 3, 0.006)
x2d, y2d = np.meshgrid(x1d, y1d)
r2d = x2d**2 + y2d**2
z = np.exp(-r2d)
plt.imshow(z, extent = (3, -3 , 3 , -3))
plt.title("A 2-D Image plot")
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.savefig('2dexp_array.pdf', format ='pdf')
plt.show(block = False)
我想更改代码,使其不使用 np.meshgrid ,而是使用 for 循环来生成 2d 网格空间。
类似:
import numpy as np
import matplotlib.pyplot as plt
x1d = np.arange(-3, 3, 0.006)
y1d = np.arange(-3, 3, 0.006)
z = np.zeros([2000, 2000])
然后根据 x1d , y1d 使用 for 循环将 z 中的零替换为正确的值。
但我不确定如何使用 for 循环来镜像 meshgrid 的功能。
如果有人能指出我正确的方向,我将不胜感激 谢谢
【问题讨论】:
-
嗨!为什么要尝试使用循环生成网格空间?
-
你为什么要尝试使用循环来生成网格?你的例子会慢 80 倍。