如何创建具有细化的网格,假设x和y从0到1,在两个方向上从0.4到0.6之间,我希望点更接近。
我一直在阅读有关numpy.logspace的内容,但它不允许有太大的自由。
有什么想法吗?
答案 0 :(得分:1)
没有一个具有此功能的特定命令,但您可以通过这种方式使用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)])
答案 1 :(得分:0)
这取决于你想要“挤压”中间值的方式。但是,你想要在每个轴上使用从11到10的11×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()