저는 112 줄과 40 컬럼을 가진 배열을 가지고 있습니다.Numpy : 최소한의 작업으로이 배열을 변형하십시오.
변환해야하는 형식은 각각 x, y가있는 56 점의 40 세트입니다.
그래서 첫 번째 줄에는 각 집합의 첫 번째 점에 대한 x 좌표가 있습니다. 두 번째 줄에는 두 번째 줄 중 x가 56 번째 줄까지 있습니다. 그 후에 나는 y가있다.
1st line : 40 x's
2nd line: 40 x's
...
56th line: 40 x's
57th line: 40 y's
...
112th line: 40 y's
처음에 나는
data.reshape(40, 56, 2)
을하고 생각하지만, x의 값이 Y의 값 앞에 와야하기 때문에 그 작동하지 않습니다. 대신에 나는 x가있는 줄과 y가있는 줄을 하나씩 사용하면 효과가 있습니다.
편집 :
for i in xrange(len(data)/2):
points.append(data[i])
points.append(data[i+len(data)/2])
points = np.array(points).T.reshape(len(data[0]), len(data)/2, 2)
return points
네, 그게 제가 찾고있는 것입니다. 감사. 왜 0과 2를 사용했는지 설명해 주시겠습니까? – pnodbnda
시행 착오. :-)'reshape'는 나를 혼란스럽게합니다. 특히 Matlab은 기본적으로 열 단위로 트래버스하기 때문에, Numpy는 기본적으로 행 단위로 트래버스합니다. 온전한 검사로'numpy.arange (112 * 40) .extape (112,40)'을 만듭니다. 그런 다음 다시 모양을 만들고 요소가 원하는 출력과 일치하는지 확인하십시오. –
나는 그것을 얻었다. 그것은 3 차원을 가지고 있기 때문에 스왑을 할 때 0과 2를 교환하면 2와 40을 바꿔서 배열을 얻을 수 있습니다. 40 x 56 x 2 – pnodbnda