score:3

Accepted answer

Just check the case:

if ROI.any():
    mean = I[ROI > 0].mean()
else:
    mean = 0

Or in an one liner using ternary:

mean = I[ROI > 0].mean() if ROI.any() else 0

score:0

To remove warning use:

import warnings

with warnings.catch_warnings():
    warnings.simplefilter("ignore", category=RuntimeWarning)
    mymean = np.mean([i for i, j in zip(I, ROI) if j])
    print(mymean)

Related Query