2016-04-04 18 views
-1

Örneğin 300x600 numpy dizilim var. Bu dizideki her değerin yerinde değişiklik yapmak için haritanın lambda'sını kullanmak istiyorum.Harita çok boyutlu dizinin her öğesinde mi kullanılıyor?

map ve lambda lambda her değişken büyüklüğü 600 dizisi Benim am güçlü herhangi zarif işlevi var mı olduğu ortaya çıktı Kullanma (hücre ardından < 100 ise örneğin aksi hiçbir şey, 0 oldu olacak) Herhangi bir büyüklükteki dizinin tüm öğeleri arasında yinelemek ve bunları yerinde değiştirmek için?

cevap

2

Kullanım boolean indexing:

In [2]: arr = np.arange(25).reshape(5, 5) 

In [3]: arr 
Out[3]: 
array([[ 0, 1, 2, 3, 4], 
     [ 5, 6, 7, 8, 9], 
     [10, 11, 12, 13, 14], 
     [15, 16, 17, 18, 19], 
     [20, 21, 22, 23, 24]]) 

In [4]: arr[arr % 3 == 0] = 42 

In [5]: arr 
Out[5]: 
array([[42, 1, 2, 42, 4], 
     [ 5, 42, 7, 8, 42], 
     [10, 11, 42, 13, 14], 
     [42, 16, 17, 42, 19], 
     [20, 42, 22, 23, 42]]) 
0

kullanabilirsiniz

f=np.vectorize(<lambda>) 
f(a) 
İlgili konular