Каким может быть самый быстрый способ построить массив упорядоченного списка последовательностей с помощью numpy?Python

Программы на Python
Anonymous
Каким может быть самый быстрый способ построить массив упорядоченного списка последовательностей с помощью numpy?

Сообщение Anonymous »

Скажем, мы начинаем с этой ситуации:
Изображение

синие числа соответствуют индексу позиции
Это было создано с помощью этого скрипта:

Код: Выделить всё

# u v parameters allow to define how many points according to x and y

u, v = (3, 3)
x = np.linspace(0, 2, u)
y = np.linspace(0, 1, v)

# meshgrid used to create a grid out of several arrays
xx, yy, zz = np.meshgrid(x, y, 0)

# reshaping matrix
coords = np.dstack((xx,yy,zz))
coords = np.vstack(coords)

Учитывая, что u и v могут быть разными и очень большими числами, основная цель — создать массив списков по следующей схеме:
Изображение
что-то вроде:

Код: Выделить всё

[[0 1 4 3]
[1 2 5 4]
[3 4 7 6]
[4 5 8 7]]
Решение, которое мне удалось найти, соответствует этому:

Код: Выделить всё

listing = np.array([((u)*j+i, (u)*j+i+1, (u)*j+i+u+1, (u)*j+i+u) for j in range(v-1) for i in range(u-1)])
Может ли кто-нибудь придумать лучший способ (более чистый, быстрый, больший массив) для достижения того же результата?


Подробнее здесь: https://stackoverflow.com/questions/786 ... st-with-nu

Вернуться в «Python»