2017-06-12 14 views
2
import numpy as np 

c=[10,2000] # only two index for example 

horizontal=[] 
vertical=[] 

for i in range(0,c[0]): 
    for j in range(0, c[1]): 
     horizontal.append(j) 
     vertical.append(i) 

print horizontal 

私は配列とforループを使って作業しているが、時間がかかりすぎる。私は理解しているので、未定義のデータ型( "i"と "j")のために時間が浪費しています。 NumPyを使用してデータ型を定義し、配列ループを高速化したい。"forループ"にNumpyを適用

これらのループ用の配列にNumPyを使用するにはどうしたらよいですか?またはこれらのループをスピードアップするための他の解決策がありますか?

答えて

3

numpyのであることを行うための最も簡単な方法は、関数meshgridを作成するnp.mgridです:

vertical, horizontal = np.mgrid[0:c[0], 0:c[1]] 
vertical = vertical.ravel()  # make it 1D 
horizontal = horizontal.ravel() # make it 1D 
+0

あなたはこの時に高速でした! ;) – Divakar

関連する問題