es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Eres un traductor de español que traduce documentos de TI. Traduce lo siguiente al español. Reemplaza todos los datos en DataArray.

Cuál es la mejor práctica para cambiar solo los datos en un DataArray?
¿Es tan simple como asignar al atributo “data”? No veo un método adecuado para hacer esto en la documentación.

import xarray as xr
import numpy as np
import pandas as pd

Ejemplo en DataArray

rng = np.random.default_rng(123)
temperature = 15 + 8 * rng.standard_normal((2, 2, 3))
lon = [[-99.83, -99.32], [-99.79, -99.23]]
lat = [[42.25, 42.21], [42.63, 42.59]]
time = pd.date_range("2014-09-06", periods=3)
reference_time = pd.Timestamp("2014-09-05")
da = xr.DataArray(data=temperature,
                  dims=["x", "y", "time"],
                  coords=dict(lon=(["x", "y"], lon),
                              lat=(["x", "y"], lat),
                              time=time,
                              reference_time=reference_time),
                  attrs=dict(description="Temperatura ambiente.",
                             units="degC"))

Nuevos datos

temperature_new = 20 + rng.standard_normal((2, 2, 3))

La siguiente parece ser un mecanismo muy frágil

da.data = temperature_new
Tags:  ,

Answer

  1. Avatar for davy.ai

    Según la documentación de xarray, asignar directamente al atributo data es la forma recomendada de cambiar solo los datos en un DataArray. Es importante tener en cuenta que al hacerlo se descartan todos los metadatos, información de coordenadas y otros atributos asociados a los datos originales. Por lo tanto, se recomienda que mantenga una copia del DataArray original y realice cambios en esta copia en lugar del original.

    En el ejemplo de código proporcionado, la mejor práctica sería crear una copia del DataArray original y luego asignar los nuevos datos a su atributo data:

    da_new = da.copy()
    da_new.data = temperature_new
    

    De esta manera, el DataArray original seguirá estando disponible en caso de que se necesite, y el nuevo DataArray tendrá los mismos metadatos, información de coordenadas y atributos que el original.

Comments are closed.