Basic Conversion Examples

Simple NumPy to PyTorch

from arraybridge import convert_memory, detect_memory_type
import numpy as np

# Create NumPy array
np_data = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float32)

# Convert to PyTorch
torch_data = convert_memory(
    data=np_data,
    source_type='numpy',
    target_type='torch',
    gpu_id=0
)

print(f"Original type: {detect_memory_type(np_data)}")
print(f"Converted type: {detect_memory_type(torch_data)}")

Preserving Data Types

import numpy as np
from arraybridge import convert_memory

# Create uint8 array (common for images)
image = np.random.randint(0, 256, size=(100, 100), dtype=np.uint8)

# Convert to PyTorch - dtype is preserved
torch_image = convert_memory(image, 'numpy', 'torch', gpu_id=0)

print(f"NumPy dtype: {image.dtype}")
print(f"PyTorch dtype: {torch_image.dtype}")  # Still uint8

Round-Trip Conversion

import numpy as np
from arraybridge import convert_memory

# Original data
original = np.array([1.5, 2.5, 3.5], dtype=np.float32)

# NumPy -> PyTorch -> CuPy -> NumPy
step1 = convert_memory(original, 'numpy', 'torch', gpu_id=0)
step2 = convert_memory(step1, 'torch', 'cupy', gpu_id=0)
final = convert_memory(step2, 'cupy', 'numpy', gpu_id=0)

# Verify data integrity
np.testing.assert_array_almost_equal(original, final)

3D Array Conversion

import numpy as np
from arraybridge import convert_memory

# Create 3D volume (e.g., medical imaging)
volume = np.random.rand(50, 512, 512).astype(np.float32)

# Convert to GPU framework for processing
gpu_volume = convert_memory(volume, 'numpy', 'cupy', gpu_id=0)

# Process on GPU...

# Convert back
result = convert_memory(gpu_volume, 'cupy', 'numpy', gpu_id=0)

Automatic Type Detection

from arraybridge import detect_memory_type, convert_memory
import numpy as np

def convert_to_numpy(data):
    """Convert any supported type to NumPy."""
    source_type = detect_memory_type(data)
    if source_type == 'numpy':
        return data
    return convert_memory(data, source_type, 'numpy', gpu_id=0)

# Works with any framework
np_data = np.array([1, 2, 3])
result = convert_to_numpy(np_data)