2012-11-15 3 views
5

네이티브 파이썬 코드는 다음과 같습니다numpy를 사용하여 배열의 두 요소를 추가하고 행렬을 만드는 방법은 무엇입니까?

>>> a=[1,2,3,4,5,6] 
>>> [[i+j for i in a] for j in a] 
[[2, 3, 4, 5, 6, 7], 
[3, 4, 5, 6, 7, 8], 
[4, 5, 6, 7, 8, 9], 
[5, 6, 7, 8, 9, 10], 
[6, 7, 8, 9, 10, 11], 
[7, 8, 9, 10, 11, 12]] 

그러나, 나는 배열이 매우 큰로서이 일을 NumPy와 사용해야합니다. 누구나 동일한 작업을 수행하는 방법에 대한 아이디어가 있습니까 numpy?

답변

9

많은 NumPy와 이진 연산자 곱셈 (또는이 경우에는, 추가)의 등가를 형성하는데 사용될 수있는 방법을 outer 테이블 :

In [260]: import numpy as np 
In [255]: a = np.arange(1,7) 

In [256]: a 
Out[256]: array([1, 2, 3, 4, 5, 6]) 

In [259]: np.add.outer(a,a) 
Out[259]: 
array([[ 2, 3, 4, 5, 6, 7], 
     [ 3, 4, 5, 6, 7, 8], 
     [ 4, 5, 6, 7, 8, 9], 
     [ 5, 6, 7, 8, 9, 10], 
     [ 6, 7, 8, 9, 10, 11], 
     [ 7, 8, 9, 10, 11, 12]]) 
관련 문제