Certainly! The simplest way to blur an image using just numpy is to apply a convolution operation using a kernel, often called a filter. The most common kernel for blurring is the "box filter", which is just a matrix filled with uniform values.

```python
import numpy as np

def convolve_2d(image, kernel):
    """Convolves an image with a kernel."""
    # Dimensions of the input image and kernel
    i_height, i_width = image.shape
    k_height, k_width = kernel.shape
    
    # Calculate padding
    pad_height = k_height // 2
    pad_width = k_width // 2
    
    # Create a padded version of the input image
    padded_image = np.pad(image, ((pad_height, pad_height), (pad_width, pad_width)), mode='constant')
    
    # Initialize the output image
    output = np.zeros_like(image, dtype=float)
    
    # Apply convolution operation
    for i in range(i_height):
        for j in range(i_width):
            output[i, j] = np.sum(padded_image[i:i+k_height, j:j+k_width] * kernel)
            
    return output

def blur_image(image, kernel_size=3):
    """Blurs the input image using a box filter of given kernel size."""
    if kernel_size % 2 == 0:
        raise ValueError("Kernel size should be odd.")
    
    # Define the blur kernel
    kernel = np.ones((kernel_size, kernel_size)) / (kernel_size * kernel_size)
    
    # Convolve the image with the blur kernel
    return convolve_2d(image, kernel)

# Test the function on a sample image (5x5 matrix)
sample_image = np.array([
    [1, 2, 3, 4, 5],
    [5, 4, 3, 2, 1],
    [1, 2, 3, 4, 5],
    [5, 4, 3, 2, 1],
    [1, 2, 3, 4, 5]
], dtype=float)

blurred_image = blur_image(sample_image)
blurred_image

```

results:

array([[1.33333333, 2.        , 2.        , 2.        , 1.33333333],
       [1.66666667, 2.66666667, 3.        , 3.33333333, 2.33333333],
       [2.33333333, 3.33333333, 3.        , 2.66666667, 1.66666667],
       [1.66666667, 2.66666667, 3.        , 3.33333333, 2.33333333],
       [1.33333333, 2.        , 2.        , 2.        , 1.33333333]])
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence