I have 2 square array with `shape = (25, 25)` and I want to check if an entire row is filled with zeros and if the corresponding column is filled with zeros. If this is the case I want to remove those columns and rows from the array.

For example:

```
array = np.array([[1, 0, 1, 1],
                  [0, 0, 0, 0],
                  [1, 0, 1, 1],
                  [1, 0, 1, 1]])

```

I want it manipulated to

```
array=np.array([[1, 1, 1],
                [1, 1, 1],
                [1, 1, 1]])

```

I hope you can understand what I am aiming at. In this example row and column two have been removed as they are zero rows/columns.

I could do that by iterating through all of those arrays, as I have 10 million of those arrays I would like to have a pythonic/efficient way to solve this issue.

The second array is a tensorflow array manipulating that should be no problem if I know the index of the rows columns I want removed.

Edit:

I have now found following solution, but it is using for-looping:

```
def removepadding(y_true, y_pred):
 shape = np.shape(y_true)
 y_true_cleaned=[]
 for i in range(shape[0]):
     x = y_true[i]
     for n in range(shape[1] - 1, -1, -1):
         if sum(x[n, :]) == 0 and sum(x[:, n]) == 0:
             x = np.delete(np.delete(x, n, 0), n, 1)
     y_true_cleaned.append(x)

 return y_true_cleaned

```