2017-03-06 4 views
2

없이 배열이나 NumPy와를 사용하여 파이썬에서 벡터와 배열을 작성합니다. 예를 들어 원하는 출력을 표현하는 것이 훨씬 쉽습니다. n x m 행렬, 배열 1의 입력, I는 각 행의 각 행에서 값 이루어진 N의 X의 N 인 배열의 배열 출력 싶습니다I 값의 행 배열을 채울 수있는 방법을 찾기 위해 노력하고있어 루프

array1 = np.array([[2, 3, 4], 
[4, 8, 3], 
[7, 6, 3]]) 

감안. 출력은 것

[[[2, 3, 4], 
    [2, 3, 4], 
    [2, 3, 4]], 
[[4, 8, 3], 
    [4, 8, 3], 
    [4, 8, 3]], 
[[7, 6, 3], 
    [7, 6, 3], 
    [7, 6, 3]]] 
그런 다음, 3D 원하는 축을 따라 numpy.repeat()을 사용하여 2D에서 배열을 바꿀 수

답변

1

: 당신이 numpy.tile을 사용할 수 있습니다

np.repeat(array1[:, None, :], 3, axis=1) 

#array([[[2, 3, 4], 
#  [2, 3, 4], 
#  [2, 3, 4]], 

#  [[4, 8, 3], 
#  [4, 8, 3], 
#  [4, 8, 3]], 

#  [[7, 6, 3], 
#  [7, 6, 3], 
#  [7, 6, 3]]]) 

또는 동등 :

np.tile(array1[:, None, :], (1,3,1)) 
1

때때로 유용하다 또 다른 해결책은 다음과

out = np.empty((3,3,3), dtype=array1.dtype) 
out[...] = array1[:, None, :] 
입니다