Jasper Bernales
Jasper Bernales

Reputation: 1681

Find Indices Of Columns Having Some Nonzero Element In A 2d array

I have a numpy array with dim (157,1944).

I want to get indices of columns that have a Nonzero element in any row.

example: [[0,0,3,4], [0,0,1,1]] ----> [2,3]

If you look each row, there is a Non Zero element in columns [2, 3]

So if I have

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

I should get [1,2,3] because column index 0 has no Nonzero elements in any row.

Upvotes: 2

Views: 2894

Answers (1)

Ami Tavory
Ami Tavory

Reputation: 76366

Not sure if your question is completely defined. However, say we start with

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

then

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

are the indices of the columns for which none of the rows are nonzero, and

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

are the indices of the columns for which not all of the rows are zero (it happens to be the same for the example you gave).

Upvotes: 3

Related Questions