2016-10-24 3 views
2

numpy를 사용하여 작은 정사각형 행렬 M에서 정사각형 행렬 M을 만드는 방법이 있습니까? M의 형상 m 모양 (× 2)로 나누어이라고 가정Numpy : 더 작은 행렬에서 행렬을 만듭니다.

:

m = [[1, 2], 
     [3, 4]] 

는 m에서 I 형상의 4 × 4의 행렬을 구축하고자,되도록 :

array([[ 1., 2., 1., 2.], 
     [ 3., 4., 3., 4.], 
     [ 1., 2., 1., 2.], 
     [ 3., 4., 3., 4.]]) 

이 생성되었습니다.

나는 특정 형태의 매트릭스를 작성하고 스칼라로 초기화하는 방법을 알고 : 여기

numpy.full((4,4), 0, dtype=numpy.int) 

, 나는 기존의 배열을 구축하고자합니다. 이것이 어떻게 (그리고 효율적으로) 성취 될 수 있는가?

답변

4

우리는 사용할 수 NumPy's Kronecker product -

np.kron(np.ones((2, 2), dtype=int), m) 

샘플 실행 -

In [140]: m 
Out[140]: 
array([[1, 2], 
     [3, 4]]) 

In [141]: np.kron(np.ones((2, 2), dtype=int), m) 
Out[141]: 
array([[1, 2, 1, 2], 
     [3, 4, 3, 4], 
     [1, 2, 1, 2], 
     [3, 4, 3, 4]]) 
4

사용 np.tile :

>>> np.tile(arr, (2, 2)) 
array([[1, 2, 1, 2], 
     [3, 4, 3, 4], 
     [1, 2, 1, 2], 
     [3, 4, 3, 4]]) 
관련 문제