input: Write a python function to read a dataset from a CSV file, count the number of rows and columns, get the data type of each column, calculate the average of all numeric columns, and count the unique values for each column.
  assert analyze_dataset('dataset1.csv') == {'num_rows': 100, 'num_cols': 5, 'data_types': ['int64', 'float64', 'object', 'int64', 'float64'], 'avg': {'col1': 50.5, 'col2': 25.75}, 'unique_values_count': {'col1': 10, 'col2': 15, 'col3': 20, 'col4': 5, 'col5': 8}}
  assert analyze_dataset('dataset2.csv') == {'num_rows': 200, 'num_cols': 3, 'data_types': ['float64', 'object', 'int64'], 'avg': {'col1': 75.3, 'col3': 40.0}, 'unique_values_count': {'col1': 30, 'col2': 50, 'col3': 10}}
output: import pandas as pd
  
  def analyze_dataset(file_path):
      df = pd.read_csv(file_path)
      
      num_rows = df.shape[0]
      num_cols = df.shape[1]
      data_types = df.dtypes.tolist()
      avg = df.select_dtypes(include='number').mean().to_dict()
      unique_values_count = df.nunique().to_dict()
      
      return {
          'num_rows': num_rows,
          'num_cols': num_cols,
          'data_types': [str(dtype) for dtype in data_types],
          'avg': avg,
          'unique_values_count': unique_values_count
      }