Implement a function to process a stream of data and detect anomalies.
The function receives numeric observations, a rolling window size, and a z-score threshold. For each observation after the window is full, compare it with the preceding window and return the indices whose absolute z-score exceeds the threshold. If the preceding window has zero variance, any different value is anomalous; the first window_size observations cannot be flagged.
Input/output: detect_anomalies(stream, window_size, threshold) receives a list of numbers, a positive integer, and a positive number. It returns a list of anomalous zero-based indices.
def detect_anomalies(stream, window_size, threshold):