import numpy as np
def merge_array_datasets(datasets):
"""
Merges a list of NumPy arrays into a single array.
Performs basic sanity checks to ensure compatibility.
Args:
datasets (list): A list of NumPy arrays to merge.
Returns:
numpy.ndarray: The merged array, or None if merging fails.
"""
if not datasets:
return None # Handle empty list
# Check if all elements are NumPy arrays
for dataset in datasets:
if not isinstance(dataset, np.ndarray):
print("Error: All elements must be NumPy arrays.")
return None
# Check if arrays have the same shape
first_shape = datasets[0].shape
for dataset in datasets:
if dataset.shape != first_shape:
print("Error: Arrays must have the same shape.")
return None
try:
merged_array = np.concatenate(datasets) #Concatenate all arrays
return merged_array
except ValueError as e:
print(f"Error during concatenation: {e}")
return None
if __name__ == '__main__':
# Example Usage
array1 = np.array([[1, 2], [3, 4]])
array2 = np.array([[5, 6], [7, 8]])
array3 = np.array([[9, 10], [11, 12]])
datasets = [array1, array2, array3]
merged_array = merge_array_datasets(datasets)
if merged_array is not None:
print("Merged array shape:", merged_array.shape)
# Example with incompatible shapes
array4 = np.array([[1, 2, 3], [4, 5, 6]])
datasets2 = [array1, array4]
merged_array2 = merge_array_datasets(datasets2)
if merged_array2 is None:
print("Incompatible shapes test passed")
#Example with non-array element
datasets3 = [array1, [1,2]]
merged_array3 = merge_array_datasets(datasets3)
if merged_array3 is None:
print("Non-array element test passed")
Add your comment