### Feature Selection
In this problem, you will learn how to select the most relevant features for a machine learning model. Feature selection is an important step in the machine learning pipeline, as it can improve the model's performance and reduce overfitting.
**Example:** Select the top 3 features for the Boston housing dataset using mutual information.
**Constraints:** Use the NumPy and SciPy libraries for this problem.
Your task is to implement a function that selects the top 3 features for the Boston housing dataset using mutual information.
Test Cases
Test Case 1
Input:
[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]]Expected:
[0, 1, 2]Test Case 2
Input:
[[20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39]]Expected:
[0, 1, 2]+ 3 hidden test cases