我如何创建一个精细化的网格,假设x和y在两个方向上从0到1,在0.4到0.6之间,我希望这些点更接近。
我一直在读关于numpy.logspace的文章,但它不允许太多的自由。
有什么想法吗?
发布于 2015-11-15 21:33:31
此功能没有特定的命令,但您可以通过以下方式使用numpy.concatenate构建阵列:
import numpy
start = 0
end = 1
bigstep = 0.1
refinedstart = 0.4
refinedend = 0.6
smallstep = 0.01
x = numpy.concatenate([numpy.arange(start, refinedstart, bigstep),
numpy.arange(refinedstart, refinedend, smallstep),
numpy.arange(refinedend, end, bigstep)])发布于 2015-11-15 23:42:59
这取决于您希望如何“挤压”中间值。但是假设你想做二次,在每个轴上使用一个从-10到10的11 x 11网格:
a = np.linspace(-np.sqrt(10), np.sqrt(10), 11)
b = np.sign(a)*a**2
x, y = np.meshgrid(b, b)要查看此网格的外观,请执行以下操作:
import matplotlib.pyplot as plt
plt.plot(x.flatten(), y.flatten(), '*')
plt.show()https://stackoverflow.com/questions/33719975
复制相似问题