Массив не обновляет значения после вызова функции - PullRequest
0 голосов
/ 28 июня 2019

Мне нужен массив, чтобы иметь все возможные комбинации (x,y) координат, которые я генерирую.Массив все еще печатается как массив 1 с.

import numpy as np

coordinates = np.ones([1000, 2])

def translate (x,y):
    dx = 5
    dy = 5
    return x + dx, y + dy

for i in range(0, 100):
    for j in range(0, 100):
        (x, y) = translate(i, j)
        coordinates[i, j] = translate(x, y)
        np.append(coordinates, translate(x, y), axis=None)

print(coordinates)

Я ожидаю, что массив координат получит правильные значения после вызова функции translate, а не массив 1 с.

1 Ответ

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

Если я правильно понимаю, вам нужны все возможные (x,y) координаты, которые можно сгенерировать, варьируя x=0..99 и y=0..99, а затем добавив несколько dx и dy к x и y соответственно,

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

coordinates = []

def translate (x,y):
    dx = 5
    dy = 5
    return x + dx, y + dy

for x in range(0, 100):
    for y in range(0, 100):
        coordinates.append(translate(x,y))

print(coordinates)

Однако это можно улучшить.Поймите, что вы просто добавляете dx к каждому x и dy к каждому y, чтобы вы могли достичь того же результата с помощью более простого кода, удалив функцию translate:

coordinates = []
dx, dy = 5, 5

for x in range(dx, 100+dx):
    for y in range(dy, 100+dy):
        coordinates.append((x,y))

print(coordinates)

Что даст вам тот же правильный ответ.

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