Непонятно, что вы хотите создать, но если вы хотите получить список «координатных» кортежей, вот один из способов:
In [310]: alist = []
...: for x in range(1,4):
...: for y in range(1,4):
...: alist.append((x,y))
...:
In [311]: alist
Out[311]: [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
или в виде списка:
In [312]: [(x,y) for x in range(1,4) for y in range(1,4)]
Out[312]: [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Повторные вызовы numpy
функций, таких как np.insert
и np.append
, не приветствуются, поскольку они каждый раз создают новый массив. Добавление в список намного лучше - если вам приходится многократно работать так:
С numpy
используйте что-то вроде meshgrid
, чтобы сгенерировать «координаты»
In [319]: np.meshgrid(range(1,4),range(1,4))
Out[319]:
[array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]]), array([[1, 1, 1],
[2, 2, 2],
[3, 3, 3]])]
In [320]: np.reshape(_,(-1,2)) # rearrange into (n,2) array
Out[320]:
array([[1, 2],
[3, 1],
[2, 3],
[1, 2],
[3, 1],
[1, 1],
[2, 2],
[2, 3],
[3, 3]])