Построить матрицу NumPy строка за строкой - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь построить массив 2D NumPy из значений в существующем массиве 2D NumPy, используя итеративный процесс.Используя обычные списки Python, процесс, который я описываю, будет выглядеть так:

coords = #data from file contained in a 2D list
d = #integer
edges = []
for i in range(d+1):
    for j in range(i+1, d+1):
        edge = coords[j] - coords[i]
        edges.append(edge)

Однако массив NumPy налагает ограничения, которые не допускают процесс, показанный выше.Ниже я пытаюсь сделать то же самое, используя массивы NumPy, и сразу должно быть ясно, где проблемы:

coords = np.genfromtxt('Energies.txt', dtype=float, skip_header=1)
d = #integer
#how to initialize?
for i in range(d+1):
    for j in range(i+1, d+1):
        edge = coords[j] - coords[i]
        #how to append?

Поскольку .append не существует для массивов NumPy, мне нужно полагаться на конкатенацию или стек,Но эти функции предназначены для объединения существующих массивов, и у меня нет ничего, что можно объединить или сложить до окончания первой итерации моего цикла.Поэтому я полагаю, что мне нужно изменить поток данных, но я не уверен, как это сделать.

Любая помощь будет принята с благодарностью.Заранее спасибо.

1 Ответ

0 голосов
/ 24 октября 2018

эта функция numpy.meshgrid [1], функция делает это по умолчанию.

[1] https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.meshgrid.html

...