Вот вопрос новичка: я реализую судоку 9X9, используя массив numpy. Каждая ячейка имеет 9 возможностей [1-9], я заполнил каждую ячейку строкой «123456789», чтобы представить все возможности. Я дополнительно сгладил это, чтобы получить массив [81X1]
Судоку начинается с некоторых чисел. Я могу прочитать их из CSV, таким образом получая индекс и значение. Следующим шагом является использование индекса для идентификации строки и столбца, а затем удаление значения (эквивалент строки) из всех ячеек в той же строке / столбце / блоке. rem_1 () ниже тривиально.
Как мне "применить" rem_1 только к ячейкам в той же строке / столбце без выполнения циклов? Я буду разбираться с блоками позже:)
def rem_1(poss, num):
return poss.replace(str(num), '')
sud = np.full((9,9), '123456789')
sud_flat= sud.reshape(81,1)
csv = np.genfromtxt ('SudokuEx1.csv', delimiter=",", skip_header=1, dtype=int)
ID = csv[:,0] # this will be used to identify row/col
Val = csv[:,3] #this is the value I need to remove from all row/col cells except the ID'ed cell