I'm trying to write a function to delete all rows in which have a zero value in. This is not from my code, but an example of the idea I am using:
import numpy as np
a=np.array(([7,1,2,8],[4,0,3,2],[5,8,3,6],[4,3,2,0]))
b=[]
for i in range(len(a)):
for j in range (len(a[i])):
if a[i][j]==0:
b.append(i)
print 'b=', b
for zero_row in b:
x=np.delete(a,zero_row, 0)
print 'a=',a
and this is my output:
b= [1, 3]
a= [[7 1 2 8]
[4 0 3 2]
[5 8 3 6]
[4 3 2 0]]
How do I get rid of the rows with the index in b? Sorry, I'm fairly new to this any help would be really appreciated.
I'm trying to write a function to delete all rows in which have a zero value in.
You don't need to write a function for that, it can be done in a single expression:
>>> a[np.all(a != 0, axis=1)]
array([[7, 1, 2, 8],
[5, 8, 3, 6]])
Read as: select from a
all rows that are entirely non-zero.