LINUX.ORG.RU

numpy, простая координатная сетка

 ,


0

1

Есть:

X = (37, 37.5, 38)
Y = (50, 50.5, 51.2, 51.5, 52)

[(x, y) for x in X for y in Y]
[(37, 50), (37, 50.5), (37, 51.2), (37, 51.5), (37, 52), 
 (37.5, 50), (37.5, 50.5), (37.5, 51.2), (37.5, 51.5), (37.5, 52),
 (38, 50), (38, 50.5), (38, 51.2), (38, 51.5), (38, 52)]

А в numpy как ускоряется? Не нашёл функции.

Update.

np.asarray(np.meshgrid(X, Y)).T.reshape(-1, 2)
★★★★★

Последнее исправление: vvn_black (всего исправлений: 2)

Ответ на: комментарий от thunar

Может мне кажется, но meshgrid совсем немного по другому работает. Если только потом стыковать полученные сетки.

X = np.block([37, 37.5, 38])
Y = np.block([50, 50.5, 51.2, 51.5, 52])
a, b = np.meshgrid(X, Y)
c = np.dstack([a, b]).ravel()
c.reshape(c.shape[0]//2, 2)
array([[37. , 50. ],
       [37.5, 50. ],
       [38. , 50. ],
       [37. , 50.5],
       [37.5, 50.5],
       [38. , 50.5],
       [37. , 51.2],
       [37.5, 51.2],
       [38. , 51.2],
       [37. , 51.5],
       [37.5, 51.5],
       [38. , 51.5],
       [37. , 52. ],
       [37.5, 52. ],
       [38. , 52. ]])

Что-то такое получается.

vvn_black ★★★★★
() автор топика
Последнее исправление: vvn_black (всего исправлений: 3)

[(x, y) for x in X for y in Y]

Тут даже numpy не нужен:

grid = list(itertools.product(X, Y))
steemandlinux ★★★★★
()
Последнее исправление: steemandlinux (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.