2013-01-23 2 views
2

나는 다음과 같은 문제가있다 : LOG-scale에 equaly 분포 숫자가있는 1d-string이 필요하다. 정확하게 eb하려면 : 1,2,3,4,5,6,7,8,9,10,20,30,40 ..., 100,200,300, ... 등등.브로드 캐스트 중에 전원을 켜는 방법은 무엇입니까?

ome = np.linspace(1,9,9).reshape(9,1) 
pow = np.linspce(0,5,6).reshape(1,6) 
logome = ome*(10**pow) 

하지만이 작동하지 않습니다와 내가 진행하는 방법을 알고하지 않습니다

내 코드는 지금까지 다음과 같다)이 10^9까지 갈 수 있으므로 입력은 옵션이 아닙니다. .. 어떤 제안? 아무도 관심이 경우

좋아, 밖으로 몇 가지 방법을 생각 :

ome = np.linspace(1,9,9).reshape(1,9) 
pow = np.linspce(0,5,6) 
pow = np.power(10,pow).reshape(6,1) 
logome = ome*pow 
logome.reshape(54) 

+0

현재 어떤 언어로 작업하고 있습니까? –

답변

3

: 짜잔 원하는 출력을 얻으려면, 아마 같은 것을 할 것 :

>>> np.arange(5) 
array([0, 1, 2, 3, 4]) 
>>> np.arange(5)[:, None] 
array([[0], 
     [1], 
     [2], 
     [3], 
     [4]]) 
>>> 10**np.arange(5)[:, None] 
array([[ 1], 
     [ 10], 
     [ 100], 
     [ 1000], 
     [10000]]) 
: 두 번째 항은 다음과 같이 작동
>>> (np.arange(1, 10) * 10**np.arange(9)[:,None]).flatten() 
array([  1,   2,   3,   4,   5,   6, 
       7,   8,   9,  10,  20,  30, 
       40,  50,  60,  70,  80,  90, 
      100,  200,  300,  400,  500,  600, 
      700,  800,  900,  1000,  2000,  3000, 
      4000,  5000,  6000,  7000,  8000,  9000, 
      10000,  20000,  30000,  40000,  50000,  60000, 
      70000,  80000,  90000, 100000, 200000, 300000, 
      400000, 500000, 600000, 700000, 800000, 900000, 
     1000000, 2000000, 3000000, 4000000, 5000000, 6000000, 
     7000000, 8000000, 9000000, 10000000, 20000000, 30000000, 
     40000000, 50000000, 60000000, 70000000, 80000000, 90000000, 
     100000000, 200000000, 300000000, 400000000, 500000000, 600000000, 
     700000000, 800000000, 900000000]) 

np.logspace에 관심이 있으실 것입니다. 이 배열 은 로그 배율로 균등하게 분산 된이 아닙니다.

관련 문제