2012-12-04 4 views
2

어떻게 이런 (48, 64) NumPy와 배열을 만들 수행 사이에 같은 양의 너피 2d 배열을 만드는 방법은 무엇입니까?

i,  i,  i, .....,i 
i+0.1, i+0.1,..........,i+0.1 
i+0.2, i+0.2,..........,i+0.2 
. 
. 
. 
. 
i+6.3, i+6.3,..........,i+6.3 

0.1 행 사이의 고정 차이이다.

내가 JoshAdel의 답을 완벽하게 해결 한

,하지만 어떻게 고정 차이가 열 사이에 대해? 즉.

i,i+0.1,i+0.2.....i+6.3 
i,i+0.1,i+0.2.....i+6.3 
. 
. 
. 
i,i+0.1,i+0.2.....i+6.3 

고마워요!

답변

2
import numpy as np 
i = 10.0 
a = np.empty((64,48)) 
a.fill(i) 
a += np.arange(0,6.4,0.1)[:,np.newaxis] 

Out[12]: 
array([[ 10. , 10. , 10. , ..., 10. , 10. , 10. ], 
     [ 10.1, 10.1, 10.1, ..., 10.1, 10.1, 10.1], 
     [ 10.2, 10.2, 10.2, ..., 10.2, 10.2, 10.2], 
     ..., 
     [ 16.1, 16.1, 16.1, ..., 16.1, 16.1, 16.1], 
     [ 16.2, 16.2, 16.2, ..., 16.2, 16.2, 16.2], 
     [ 16.3, 16.3, 16.3, ..., 16.3, 16.3, 16.3]]) 

노트의 몇 :

  • 배열에 NumPy와의 모양 규칙은 (nrow, ncolumn)입니다 그래서 당신은 수 (64,48)을 모양을 필요가 없습니다 (48, 64)이 너는 너의 질문에있어.

  • 여러 가지 방법이 있지만 numpy의 broadcasting 표기법을 사용하기로했습니다.

  • 더 작게 작성할 수 있지만 설명을 위해 별도의 단계로 나누었습니다.

+0

다른 question..how 나는 그것이 열 현명 할 수를 사용? – oops

0

이 할 수있는 다른 방법 (단지 재미를 위해) tile (doc)

c = 10 + np.cumsum(np.ones(64))*.1 - .1 
a = np.tile(c,(48,1)).T 
관련 문제