Я читаю данные магнитного поля из текстового файла.Моя цель - правильно и эффективно загрузить точки сетки (в 3-х измерениях) и связанные поля (для простоты ниже я буду предполагать, что у меня есть скалярное поле).
Мне удалось заставить его работать, однако ячувствую, что некоторые шаги могут не понадобиться.В частности, при чтении numpy
документа может оказаться, что «широковещание» могло бы использовать свое волшебство в мою пользу.
import numpy as np
from scipy import interpolate
# Loaded from a text file, here the sampling over each dimension is identical but it is not required
x = np.array([-1.0, -0.5, 0.0, 0.5, 1.0])
y = np.array([-1.0, -0.5, 0.0, 0.5, 1.0])
z = np.array([-1.0, -0.5, 0.0, 0.5, 1.0])
# Create a mesh explicitely
mx, my, mz = np.meshgrid(x, y, z, indexing='ij') # I have to switch from 'xy' to 'ij'
# These 3 lines seem odd
mx = mx.reshape(np.prod(mx.shape))
my = my.reshape(np.prod(my.shape))
mz = mz.reshape(np.prod(mz.shape))
# Loaded from a text file
field = np.random.rand(len(mx))
# Put it all together
data = np.array([mx, my, mz, field]).T
# Interpolate
interpolation_points = np.array([[0, 0, 0]])
interpolate.griddata(data[:, 0:3], data[:, 3], interpolation_points, method='linear')
Действительно ли необходимо создавать меш таким образом?Можно ли сделать его более эффективным?