Метод 1:
Использование np.argwhere
np.argwhere(~df.values )
array([[0, 1],
[0, 2],
[1, 1],
[3, 0]], dtype=int64)
Метод 2:
Редактировать после @ Скотта Бостонский комментарий
Мы можем использовать np.where
для этого и после этого zip
два массива для получения координат:
list(zip(*np.where(~df)))
[(0, 1), (0, 2), (1, 1), (3, 0)]
Пояснение
np.where
даетмы два массива, первый - индекс строки, второй - индекс столбца.
np.where(~df)
(array([0, 0, 1, 3], dtype=int64), array([1, 2, 1, 0], dtype=int64))
Итак, если мы zip
из этих массивов и преобразуем его в список, мы получим желаемый результат.