In [741]: queu = np.array([[[0,0],[0,1]]])
In [742]: new_path = np.array([[[0,0],[1,0],[2,0]]])
In [743]: queu
Out[743]:
array([[[0, 0],
[0, 1]]])
In [744]: queu.shape
Out[744]: (1, 2, 2)
In [745]: new_path
Out[745]:
array([[[0, 0],
[1, 0],
[2, 0]]])
In [746]: new_path.shape
Out[746]: (1, 3, 2)
당신은 모양 (1,2,2-)과 (1,3,2)으로,이 개 배열을 정의했습니다. 당신이 그 모양에 대해 의아해하는 경우에 당신은 기본적인 것의 약간을 다시 읽을 필요가있다 numpy
소개.
hstack
, vstack
및 append
모두 concatenate
입니다. 3D 배열을 사용하면 문제가 혼동 될뿐입니다.
두 번째 축에 연결합니다.이 축은 1의 크기 2이고 다른 3의 축은 (1,5,2) 배열을 생성합니다.
In [748]: np.concatenate((queu, new_path),axis=0)
....
ValueError: all the input array dimensions except for the concatenation axis must match exactly
병합 축은 0이지만, 축 (1)의 치수는 다르다 : 축의 0에 참여하려고
In [747]: np.concatenate((queu, new_path),axis=1)
Out[747]:
array([[[0, 0],
[0, 1],
[0, 0],
[1, 0],
[2, 0]]])
(이 hstack
에 상당) (vstack)는 사용자의 에러를 생성한다. 따라서 오류.
귀하의 타겟은 유효한 숫자 배열이 아닙니다. 당신은 목록에서 그들을 함께 수집 할 수 있습니다 :
In [759]: alist=[queu[0], new_path[0]]
In [760]: alist
Out[760]:
[array([[0, 0],
[0, 1]]),
array([[0, 0],
[1, 0],
[2, 0]])]
또는 객체 DTYPE 배열 -하지만 numpy
고급입니다.
매트릭스가 모든 축에서 같은 수의 요소를 가져야하므로 원하는 결과가 매트릭스가 아닙니다 (예 : 각 행에 정확히 2 개의 요소가있는 3x2-3 행). – sirfz
알았습니다. 나는 2D 매트릭스에서 가능한 모든 방법을 열거하려고합니다. 나는 나의 접근 방식을 바꿀 것이다. –