Decode arrays on the fly from integer to boolean datatype This is useful for decoding boolean arrays from integer typed netCDF variables. >>> x = np.array([1, 0, 1, 1, 0], dtype="i1") >>> x.dtype dtype('int8') >>> BoolTypeArray(x).dtype dtype('bool') >>> indexer
| 75 | |
| 76 | |
| 77 | class BoolTypeArray(indexing.ExplicitlyIndexedNDArrayMixin): |
| 78 | """Decode arrays on the fly from integer to boolean datatype |
| 79 | |
| 80 | This is useful for decoding boolean arrays from integer typed netCDF |
| 81 | variables. |
| 82 | |
| 83 | >>> x = np.array([1, 0, 1, 1, 0], dtype="i1") |
| 84 | |
| 85 | >>> x.dtype |
| 86 | dtype('int8') |
| 87 | |
| 88 | >>> BoolTypeArray(x).dtype |
| 89 | dtype('bool') |
| 90 | |
| 91 | >>> indexer = indexing.BasicIndexer((slice(None),)) |
| 92 | >>> BoolTypeArray(x)[indexer].dtype |
| 93 | dtype('bool') |
| 94 | """ |
| 95 | |
| 96 | __slots__ = ("array",) |
| 97 | |
| 98 | def __init__(self, array) -> None: |
| 99 | self.array = indexing.as_indexable(array) |
| 100 | |
| 101 | @property |
| 102 | def dtype(self) -> np.dtype: |
| 103 | return np.dtype("bool") |
| 104 | |
| 105 | def _oindex_get(self, key): |
| 106 | return type(self)(self.array.oindex[key]) |
| 107 | |
| 108 | def _vindex_get(self, key): |
| 109 | return type(self)(self.array.vindex[key]) |
| 110 | |
| 111 | def __getitem__(self, key) -> Self: |
| 112 | return type(self)(self.array[key]) |
| 113 | |
| 114 | def get_duck_array(self): |
| 115 | return duck_array_ops.astype(self.array.get_duck_array(), dtype=self.dtype) |
| 116 | |
| 117 | def transpose(self, order): |
| 118 | return type(self)(self.array.transpose(order)) |
| 119 | |
| 120 | |
| 121 | def _apply_mask( |
no outgoing calls
no test coverage detected
searching dependent graphs…