Как я могу организовать этот код Mayavi для ускорения? - PullRequest
0 голосов
/ 16 июня 2019

Я пишу сценарий для моего проекта по физике. Мой код работал 18 часов и показал векторное поле.

x, y, z - это координатные матрицы, а c, e, f - это матрицы, содержащие миллионы векторов.

Я пытался установить маску, но она не сработала.

vectors=mlab.pipeline.vector_field(x, y, z, c, e, f)

mlab.pipeline.vectors(vectors, mask_points = 100, scale_factor = 0.5, 
                          mode = "arrow", resolution = 8, line_width = 3)

mlab.show()

Кто-нибудь знает способ ускорения казни, пожалуйста?

1 Ответ

0 голосов
/ 19 июня 2019

А как насчет того, чтобы начать с небольшого подмножества всех ваших полей, чтобы увидеть, как время выполнения зависит от количества данных?Вы бы смотрели на что-то вроде:

eachX = 100
eachY = 200
eachZ = 50
vectors = mlab.pipeline.vector_field(x[::eachX, ::eachY, ::eachZ],
                                     y[::eachX, ::eachY, ::eachZ],
                                     z[::eachX, ::eachY, ::eachZ],
                                     c[::eachX, ::eachY, ::eachZ],
                                     e[::eachX, ::eachY, ::eachZ],
                                     f[::eachX, ::eachY, ::eachZ])
...