Я начну с извинений, потому что я совершенно новичок в python (парень из Фортрана) и учусь на лету.В результате, вероятно, в моих знаниях есть некоторые довольно явные дыры, которые могут стать очевидными после прочтения моей текущей дилеммы.
У меня есть некоторые данные, которые необходимо записать в файл, где они затем могут быть прочитаны с помощью алгоритма интерполяции.На данный момент этот алгоритм интерполяции, вероятно, будет RectBivariateSpline от SciPi.Хотя интервалы X и Y не совпадают, они являются регулярными, поэтому это может показаться идеальным.
Данные обычно имеют вид
X1, Y1, F (X1, Y1)
X1, Y2, F (X1, Y2)
X1, Y3, F (X1, Y3)
X2, Y1, F (X2,Y1)
X2, Y2, F (X2, Y2)
X2, Y3, F (X2, Y3)
и т. Д. *
В этом случае F (X, Y) не является явной математической функцией, а скорее точкой данных для физической величины в точке X, Y.
Данные считываются из источника данных, который я в принципе могуУправляйте, используя
data_array = np.loadtxt(Path/DataFile, dtype = Float, delimiter = ";", usecols = #)
В этом случае, возможно, существует несколько разных столбцов с разными данными, но все они зависят от X и Y. Существует отдельный файл, который содержит информацию о диапазоне иразмер шага значений X и Y, которые я прочитал и сохранил в массиве.По крайней мере, я вполне уверен, что это массив, а не список, так как я где-то читал, что np.loadtxt и np.genfromtxt оба генерируют массивы numpy, а не списки vanilla python.
Я поиграл с различными идеями о том, как оптимально сохранить эти данные для передачи на другую машину, используя простую процедуру интерполяции, но я мог бы воспользоваться некоторыми советами.Сначала мне пришло в голову использовать
ArrayExample = np.Empty(xRange,yRange)
For n in (xRange)
For m in (yRange)
ArrayExample[n,m] = F(X,Y)
Однако это ничего не делает для сохранения фактического количества X или Y, связанного со значением в массиве, и это необходимо для интерполяции, и это определенно необходимо для построения графика.,
Итак, мне пришло в голову, что, поскольку у меня есть значения X и Y в форме, из которой я могу довольно легко прочитать, я мог сделать что-то следующим образом.Где xvalues и yvalues - это массивы, в которых хранятся фактические значения X и Y.
ArrayExample = np.Empty(xRange,yRange,1)
For n in (xRange)
For m in (yRange)
ArrayExample[n,m,1] = (xvalues[n],yvalues[m],F(X,Y))
После этого мне приходит в голову сохранить ArrayExample в качестве файла выбора, который будет перемещен куда угодно, а затем введен с помощью pickle надругой конец.
Однако, как только он у меня есть, я действительно не знаю, как заставить RectBivariateSpline принимать данные.Я попытался прочитать документацию на сайте scipy и поискать в Google, но все, что я нашел до сих пор, довольно бесполезно.Если у кого-то есть хорошие примеры того, как его можно использовать, это было бы очень полезно.
Буду признателен за любые советы, мысли или критику.
Спасибо!