Как создать сетевую сетку с нецелым размером шага элементов списка?

#arrays #python-3.x #list-comprehension #numpy-slicing

#массивы #python-3.x #понимание списка #numpy-нарезка

Вопрос:

У меня есть 2 списка с координатами x и y, которые генерируются независимо, с a/h количеством точек между 0 и a .

 x = np.linspace(0, a, a/h)
y = np.linspace(0, d, d/h)
  

когда a/h такое, что 0 увеличивается до a с шагом в целые числа, т.е. [0,1,2,..,a] . Это приятно, потому что тогда количество элементов в списке можно использовать в качестве индексов. И в результате я обычно могу создать сетевую сетку такой, что с ней может быть связан третий список V1 .

 X, Y = plt.meshgrid(x, y)
def potential(V1):
    return V1[X, Y]
  

где potential(V1) теперь V1 соответствует сеточной сетке [x, y] . Однако я выполняю задание, в котором от меня требуется исследовать, как размеры шага влияют на мою проблему. В результате, если бы у меня был размер шага нецелых чисел от 0 до a , т. е. [0, 0.5, 1,...,a] Теперь я не могу делать то, что я сделал выше, поскольку индексы теперь нецелые. Выдает ошибку

 IndexError: arrays used as indices must be of integer (or boolean) type
  

Как я могу это исправить, чтобы я не полагался на значение самого элемента в качестве индекса элементов, так что, если для списка 0.25 был размер шага 0 между a X для, скажем, т.е.

 X = [0, 0.25, 0.75. 1.0] or x = np.linspace(0,1,4)
  

такое, чтобы я мог иметь

 x[0] = 0 corresponds to V[0]
x[1] = 0.25 corresponds to V[1]
x[2] = 0.75 corresponds to V[2]
x[3] = 1 corresponds to V[3]
  

?