counting / maths /vectors /vector_subtract.py
spagestic's picture
feat: update examples in Gradio interfaces for vector operations to improve clarity
fcfbd59
"""
Subtract one vector from another of the same dimension using NumPy.
"""
import numpy as np
from typing import List, Union
import gradio as gr
from maths.vectors.utils import parse_vector, format_output
Vector = Union[List[float], np.ndarray]
def vector_subtract(vector1: Vector, vector2: Vector) -> np.ndarray:
v1 = np.array(vector1)
v2 = np.array(vector2)
if v1.shape != v2.shape:
raise ValueError("Vectors must have the same dimensions for subtraction.")
return np.subtract(v1, v2)
vector_subtract_interface = gr.Interface(
fn=lambda v1_str, v2_str: format_output(vector_subtract(parse_vector(v1_str), parse_vector(v2_str))),
inputs=[
gr.Textbox(label="Vector 1 (Minuend)", placeholder="e.g., [4,5,6]"),
gr.Textbox(label="Vector 2 (Subtrahend)", placeholder="e.g., [1,2,3]")
],
outputs=gr.Textbox(label="Resulting Vector"),
title="Vector Subtraction",
description="Subtracts the second vector from the first. Both must have the same dimension.\n\nExample:\nInput: [4,5,6] and [1,2,3]\nOutput: [3.0, 3.0, 3.0]",
examples=[["[4,5,6]", "[1,2,3]"], ["4,5,6", "1,2,3"]],
)