Trabajando con espectros#

Al trabajar con datos espectroscópicos en chemotools y scikit-learn, a menudo necesitas remodelar espectros individuales para que se ajusten a las formas de datos esperadas. Esta guía explica cómo remodelar espectros individuales para preprocesamiento en scikit-learn y chemotools.

Comprendiendo las Formas de Datos#

Las técnicas de preprocesamiento de chemotools y scikit-learn esperan arreglos 2D (matrices) donde:

  • Cada fila representa una muestra

  • Cada columna representa una característica

Sin embargo, los datos espectroscópicos a menudo vienen como un espectro individual en arreglos 1D (vectores). Aquí hay un ejemplo de un espectro individual:

array([0.484434, 0.485629, 0.488754, 0.491942, 0.489923, 0.492869,
       0.497285, 0.501567, 0.500027, 0.50265])

Para usar chemotools y scikit-learn con espectros individuales, necesitas remodelar el arreglo 1D en un arreglo 2D con una fila.

Remodelando para Preprocesamiento#

Aquí se muestra cómo remodelar un arreglo 1D en un arreglo 2D con una sola fila:

import numpy as np

spectra_2d = spectra_1d.reshape(1, -1)

El método reshape(1, -1) convierte el arreglo 1D spectra_1d en un arreglo 2D con una sola fila. El resultado (spectra_2d) se ve así:

array([[0.484434, 0.485629, 0.488754, 0.491942, 0.489923, 0.492869,
        0.497285, 0.501567, 0.500027, 0.50265]])

Nota

La salida remodelada es un arreglo 2D con una sola fila - el formato requerido por las técnicas de preprocesamiento de scikit-learn y chemotools.

Ahora, puedes usar el espectro individual remodelado con las técnicas de preprocesamiento de chemotools y scikit-learn:

import numpy as np
from chemotools.scatter import MultiplicativeScatterCorrection

msc = MultiplicativeScatterCorrection()
spectra_msc = msc.fit_transform(spectra_2d))