Как я понимаю, вы хотели бы получить явное выражение для й и у координаты черных квадратов на «шахматной доске», так что вы не должны оценивать логическое значение для каждого квадрата. Вот реализация моего решения (для 2-мерной доски):
import numpy as np
# 'Chess board' dimension
m = 3 # Number of columns
n = 4 # Number of rows
# Counter variable. The length of this array is equal to the total number of black squares.
k = np.arange(0,m*n,2)
x_coords = (k + (k/n) % 2) % n # x-coordinates of black squares
y_coords = (k + (k/n) % 2)/n # y-coordinates of black squares
print("x-coordinates: "+str(x_coords))
print("y-coordinates: "+str(y_coords))
Для 3х4 размерной платы в приведенном выше примере, это генерирует следующий вывод:
x-coordinates: [0 2 1 3 0 2]
y-coordinates: [0 0 1 1 2 2]
, которые можно проверить рисуя небольшую диаграмму. Обратите внимание, что «вспомогательная переменная» (k/n) % 2
отслеживает, является ли номер строки четным или нечетным; нечетные строки имеют «смещение» относительно четных.
Если вы хотите обрабатывать произвольное количество осей, посмотрите на 'itertools.product', но обратите внимание, что *« любые идеи? »* Не является хорошим вопросом SO. – jonrsharpe