Numpy объединяет два разных линспространства в координатную матрицу - PullRequest
0 голосов
/ 04 апреля 2019

mat=[]

for x in np.linspace(x_min, x_max,num_x):
    y=np.linspace(y_min, y_max,num_y)
    mat.append(list(zip([x]*len(y),y)))
mat=np.array(mat)

Я мог бы сделать вышеупомянутое использование циклов, но я ищу более эффективный метод.

1 Ответ

2 голосов
/ 04 апреля 2019

Используйте np.meshgrid, обратите внимание, что он перенастраивает один массив ND для каждой координаты, вы должны работать с ними, чтобы получить матрицу пар координат

Возвращать матрицы координат из векторов координат.

Создание координатных массивов ND для векторизованных вычислений скалярных / векторных полей ND над сетками ND с учетом одномерных координатных массивов x1, x2,…, xn.

x = np.linspace(x_min, x_max,num_x)
y = np.linspace(y_min, y_max,num_y)

XY = np.meshgrid(x,y)
# Here you have a tuple of 2 coordinate matrix

mat = np.array(XY).transpose()
# Transpose will transform your (2,num_y,num_x) array into
# the desired (num_x,num_y,2) array.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...