Spaces:
Running
Running
| import numpy as np | |
| import json | |
| def get_data_from_json() -> np.ndarray: | |
| with open('cattle_log.json', 'r') as file: | |
| log_content = json.load(file)['logs'] | |
| X = [] | |
| # Iterate over each log entry in the log_content | |
| for log_entry in log_content: | |
| # Extract and convert the necessary attributes | |
| total_today_str = log_entry['distanceTraveled']['totalToday'].rstrip('m') | |
| heart_rate = int(log_entry['healthData']['heartRate']) # Assuming heart rate is always an integer | |
| weight_str = log_entry['healthData']['weight'].rstrip('kg') | |
| # Convert the distance and weight to floating-point values | |
| total_today = float(total_today_str) # Convert distance to float | |
| weight = float(weight_str) # Convert weight to float | |
| # Create a 3D vector for the current log entry and append it to the list of vectors | |
| vector_3d = [total_today, heart_rate, weight] | |
| X.append(vector_3d) | |
| # Convert X into a NumPy array for easier slicing | |
| X = np.array(X) | |
| return X | |
| def generate_random_data(num_dimensions, rng) -> np.ndarray: | |
| # Generating a dataset with 100 points. 95 points are generated from a Gaussian distribution, | |
| # and 5 points are anomalies added manually. | |
| X = 0.3 * rng.randn(95, num_dimensions) | |
| X = np.r_[X + 2, X - 2] | |
| X_outliers = rng.uniform(low=-4, high=4, size=(5, num_dimensions)) | |
| X = np.r_[X, X_outliers] | |
| return X | |