From a style point of view, I prefer explicit getters (as in in a 'get_row_idx' function) rather than properties. It  makes it more explicit in the code that there is computation going on when reading the code.

The same remark holds for the properties below.

IMHO, the real usecase of properties is impedance matching to adapt to an interface that expects attributes.