현재 제 코드는 수십 개의 필드와 많은 킬로바이트의 항목 크기를 가진 다차원 dtyp을 가진 구조화 된 마스크 된 배열을 많이 사용합니다. xarray
은 훌륭한 대안이 될 수 있지만, 나는 그것을 마스크 배열을 전달하려고 할 때, 그것은 떠하기 위해 DTYPE을 변경 것으로 나타납니다,정수형을 유지하면서 마스크 된 배열을 사용하는 xarray
In [137]: x = arange(30, dtype="i1").reshape(3, 10)
In [138]: xr.Dataset({"count": (["x", "y"], ma.masked_where(x%5>3, x))}, coords={"x": range(3), "y":
...: range(10)})
Out[138]:
<xarray.Dataset>
Dimensions: (x: 3, y: 10)
Coordinates:
* y (y) int64 0 1 2 3 4 5 6 7 8 9
* x (x) int64 0 1 2
Data variables:
count (x, y) float64 0.0 1.0 2.0 3.0 nan 5.0 6.0 7.0 8.0 nan 10.0 ...
이 나를 위해 바람직하지 않다 (1) 메모리 소비 때문에 내 데이터 세트가 폭발 할 것입니다. (이미 크기가 큽니다.) (2) 정수형의 대부분은 실수로 표현되어서는 안되는 비트 필드입니다. int32
비트 필드 은 일 수 있으며, 무손실로 float64
으로 표시 될 수 있지만,보기 흉하고 오류가 발생하기 쉽습니다.
xarray.Dataset
을 마스크 된 배열과 함께 사용하여 정수형을 유지할 수 있습니까?
편집 : 문제가 _maybe_promote
에서 발생 나타납니다. github issue도 참조하십시오.
참고 : * http : //stackoverflow.com/q/11548005/974555* 및 * http : //www.numpy.org/NA-overview.html*. – gerrit