1. import numpy as np
  2. def merge_array_datasets(datasets):
  3. """
  4. Merges a list of NumPy arrays into a single array.
  5. Performs basic sanity checks to ensure compatibility.
  6. Args:
  7. datasets (list): A list of NumPy arrays to merge.
  8. Returns:
  9. numpy.ndarray: The merged array, or None if merging fails.
  10. """
  11. if not datasets:
  12. return None # Handle empty list
  13. # Check if all elements are NumPy arrays
  14. for dataset in datasets:
  15. if not isinstance(dataset, np.ndarray):
  16. print("Error: All elements must be NumPy arrays.")
  17. return None
  18. # Check if arrays have the same shape
  19. first_shape = datasets[0].shape
  20. for dataset in datasets:
  21. if dataset.shape != first_shape:
  22. print("Error: Arrays must have the same shape.")
  23. return None
  24. try:
  25. merged_array = np.concatenate(datasets) #Concatenate all arrays
  26. return merged_array
  27. except ValueError as e:
  28. print(f"Error during concatenation: {e}")
  29. return None
  30. if __name__ == '__main__':
  31. # Example Usage
  32. array1 = np.array([[1, 2], [3, 4]])
  33. array2 = np.array([[5, 6], [7, 8]])
  34. array3 = np.array([[9, 10], [11, 12]])
  35. datasets = [array1, array2, array3]
  36. merged_array = merge_array_datasets(datasets)
  37. if merged_array is not None:
  38. print("Merged array shape:", merged_array.shape)
  39. # Example with incompatible shapes
  40. array4 = np.array([[1, 2, 3], [4, 5, 6]])
  41. datasets2 = [array1, array4]
  42. merged_array2 = merge_array_datasets(datasets2)
  43. if merged_array2 is None:
  44. print("Incompatible shapes test passed")
  45. #Example with non-array element
  46. datasets3 = [array1, [1,2]]
  47. merged_array3 = merge_array_datasets(datasets3)
  48. if merged_array3 is None:
  49. print("Non-array element test passed")

Add your comment