import numpy as np
# Generate arrays of random numbers
D = np.random.uniform(0, 1, 100) # 100 random numbers between 0 and 1
S = np.random.randint(0, 10, 100) # 100 random integers between 0 and 9
# Find unique values in S and their corresponding indices
unique_vals, inverse_indices = np.unique(S, return_inverse=True)
# Calculate mean of D values for each unique value in S
D_means = np.zeros(len(unique_vals))
for i, val in enumerate(unique_vals):
D_means[i] = np.mean(D[inverse_indices == i])
# Print mean of D values for each unique value in S
print(D_means)