Вот решение с примерами данных:
a,b,c = X.shape
# in your case
# a,b,c = 1797, 500
pd.DataFrame(X.transpose(1,2,0).reshape(2,-1).T,
index=np.repeat(np.arange(c),a),
columns=['X_coord','Y_coord']
)
Вывод:
X_coord Y_coord
0 0 3
0 6 9
0 12 15
0 18 21
1 1 4
1 7 10
1 13 16
1 19 22
2 2 5
2 8 11
2 14 17
2 20 23