문제 : 3D Numpy 배열이 있습니다.
X
X.shape: (1797, 2, 500)
z=X[..., -1]
print(len(z))
print(z.shape)
count = 0
for bot in z:
print(bot)
count+=1
if count == 3: break
위의 코드는 다음과 같은 출력을 생성합니다.
1797
(1797, 2)
[23.293915 36.37388 ]
[21.594519 32.874397]
[27.29872 26.798382]
따라서 각각 X 및 Y 좌표가있는 1797 개의 데이터 포인트가 있으며이 1797 개의 포인트가 500 회 반복됩니다.
다음과 같은 DataFrame을 원합니다.
Index Column | X-coordinate | Y-coordinate
0 | X[0][0][0] | X[0][1][0]
0 | X[1][0][0] | X[1][1][0]
0 | X[2][0][0] | X[2][1][0]
('0') 1797 times
1 | X[0][0][1] | X[0][1][1]
1 | X[1][0][1] | X[1][1][1]
1 | X[2][0][1] | X[2][1][1]
('1' 1797 times)
.
.
.
and so on
till 500
여기에 언급 된 기술을 시도했지만 numpy / pandas는 실제로 나를 피하고 있습니다.
제발 도와주세요. 내가 질문하는 규율을 고수하고 있기를 바랍니다.
다음은 샘플 데이터가있는 솔루션입니다.
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
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다