NumSharp es una biblioteca de código abierto para .NET diseñada para facilitar la computación numérica y el análisis de datos, emulando la funcionalidad de NumPy, una de las bibliotecas más populares en el ecosistema de Python.
NumSharp proporciona una API sencilla para manipular matrices, realizar cálculos matemáticos y trabajar con datos numéricos en aplicaciones .NET.
Características de NumSharp:
- Matrices N-dimensionales: Soporte para arrays multidimensionales, similares a los arrays de NumPy.
- Operaciones Matemáticas: Funciones para álgebra lineal, estadísticas y operaciones matemáticas generales.
- Interoperabilidad con ML.NET: Facilita la integración con ML.NET para el desarrollo de modelos de aprendizaje automático.
- Compatibilidad: Funciona en proyectos de .NET Core y .NET Framework.
Instalación de NumSharp
Puedes instalar NumSharp a través del administrador de paquetes NuGet. Abre tu terminal o la consola del administrador de paquetes de Visual Studio y ejecuta el siguiente comando:
Install-package NumSharp
O mediante la interfaz de NuGet en Visual Studio, busca NumSharp
e instálalo en tu proyecto.
Cómo Usar NumSharp
Creación de Arrays y Matrices
NumSharp proporciona una clase NDArray
para trabajar con arrays multidimensionales. Aquí hay un ejemplo básico de cómo crear y manipular arrays:
using NumSharp;
class Program
{
static void Main(string[] args)
{
// Crear un array unidimensional
var array1D = np.array(new int[] { 1, 2, 3, 4, 5 });
// Crear un array bidimensional
var array2D = np.array(new int[,] { { 1, 2 }, { 3, 4 } });
// Mostrar los arrays
Console.WriteLine("Array 1D:");
Console.WriteLine(array1D.ToString());
Console.WriteLine("Array 2D:");
Console.WriteLine(array2D.ToString());
}
}
Array 1D:
[1, 2, 3, 4, 5]
Array 2D:
[[1, 2],
[3, 4]]
Operaciones Matemáticas Básicas
NumSharp incluye una serie de funciones matemáticas útiles para operaciones básicas en arrays y matrices:
using NumSharp;
class Program
{
static void Main(string[] args)
{
var array = np.array(new double[] { 1, 2, 3, 4, 5 });
// Operaciones matemáticas
var squared = np.power(array, 2); // Eleva cada elemento al cuadrado
var sum = np.sum(array); // Suma todos los elementos
Console.WriteLine("Array Original:");
Console.WriteLine(array.ToString());
Console.WriteLine("Array Cuadrado:");
Console.WriteLine(squared.ToString());
Console.WriteLine("Suma de Elementos:");
Console.WriteLine(sum.ToString());
}
}
Manipulación de Datos
NumSharp permite realizar operaciones complejas en matrices, como transposición, redimensionamiento y operaciones matemáticas avanzadas:
using NumSharp;
class Program
{
static void Main(string[] args)
{
// Crear una matriz de 3x3
var matrix = np.array(new double[,] {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
});
// Transponer la matriz
var transpose = np.transpose(matrix);
// Redimensionar la matriz a 1x9
var reshape = np.reshape(matrix, new Shape(1, 9));
Console.WriteLine("Matriz Original:");
Console.WriteLine(matrix.ToString());
Console.WriteLine("Matriz Transpuesta:");
Console.WriteLine(transpose.ToString());
Console.WriteLine("Matriz Redimensionada:");
Console.WriteLine(reshape.ToString());
}
}
Integración con ML.NET
NumSharp es compatible con ML.NET, lo que facilita el trabajo con datos numéricos en el contexto del aprendizaje automático:
using NumSharp;
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
// Crear un array de características
var features = np.array(new double[] { 1.0, 2.0, 3.0, 4.0, 5.0 });
// Utilizar NumSharp para preparar datos para ML.NET
var normalizedFeatures = (features - np.min(features)) / (np.max(features) - np.min(features));
Console.WriteLine("Características Normalizadas:");
Console.WriteLine(normalizedFeatures.ToString());
}
}
Para obtener más información y explorar la documentación completa, visita el repositorio oficial de NumSharp en GitHub. Aquí encontrarás ejemplos adicionales, tutoriales y recursos .