2016-03-26 11 views
0

Loşlu bir numpy dizim var (157,1944).2d dizisinde Bazı Nonzero Elemanı Olan Sütunların Endekslerini Bul

Herhangi bir sırada Nonzero öğesi olan sütunların indislerini almak istiyorum.

örnek: [[0,0,3,4], [0,0,1,1]] ---->[2,3]

her satırı bakarsanız, sütunlarda Olmayan Sıfır bileşen olduğuna [2, 3] ben var ise

[[0,1,3,4], [0,0,1,1]]

[1,2,3] numaralı telefonu almalıyım çünkü sütun dizini 0 herhangi bir sırada Nonzero öğesi içermiyor.

+0

Yani, ikinci satırın bu durumda sıfır olmayan benzersiz bir dizin yok mu? "[[0,0,3,4], [0,0,1,1]], [2,0,0,3], [0,3,1 'gibi basit bir durum ekleyebilir misiniz? , 3]] 've beklenen çıktısını listeleyebilir? – Divakar

+0

evet. Durumunuzda [0,1,2,3] –

+1

alacağım. [0,1,2,3] 'e nasıl ulaştığınız konusunda net değilim. Açıklar mısınız? Lütfen tüm bunları listelemek için soruyu düzenleyin. – Divakar

cevap

3

Sorunuzun tamamen tanımlanmış olduğundan emin değilsiniz. Ancak, satır hiçbiri sıfırdan farklı olduğu için sütunların endeksleri olan

import numpy as np 
a = np.array([[0,0,3,4], [0,0,1,1]]) 
sonra

>>> np.nonzero(np.all(a != 0, axis=0))[0] 
array([2, 3]) 

başladığınızı düşünelim ve

>>> np.nonzero(np.any(a != 0, axis=0))[0] 
array([2, 3]) 

endeksleri olan Satırların numaralı sütununun sıfır olmadığı sütunlar (verdiğiniz örnekle aynı olur).

İlgili konular