# Flatten the data X_flat = X.flatten() Y_flat = Y.flatten() Z_flat = Z.flatten() # Stack X and Y as input features inputs = np.column_stack((X_flat, Y_flat)) outputs = Z_flat # Normalize the inputs and outputs inputs_mean = np.mean(inputs, axis=0) inputs_std = np.std(inputs, axis=0) outputs_mean = np.mean(outputs) outputs_std = np.std(outputs) inputs = (inputs - inputs_mean) / inputs_std outputs = (outputs - outputs_mean) / outputs_std