- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
很简单的问题,但我在网上找不到答案。我有一个 Dataset
我只想添加一个名为 DataArray
到它。类似 dataset.add({"new_array": new_data_array})
.我知道 merge
和 update
和 concatenate
,但我的理解是 merge
用于合并两个或多个 Dataset
s 和 concatenate
用于连接两个或多个 DataArray
s 形成另一个 DataArray
,我还没有完全理解update
然而。我试过 dataset.update({"new_array": new_data_array})
但我收到以下错误。
InvalidIndexError: Reindexing only valid with uniquely valued Index objects
dataset["new_array"] = new_data_array
我得到了同样的错误。
names = ["joaquin", "manolo", "xavier"]
n = xarray.DataArray([23, 98, 23], coords={"name": names})
print(n)
print("======")
m = numpy.random.randint(0, 256, (3, 4, 4)).astype(numpy.uint8)
mm = xarray.DataArray(m, dims=["name", "row", "column"], coords=[names, range(4), range(4)])
print(mm)
print("======")
n_dataset = n.rename("number").to_dataset()
n_dataset["mm"] = mm
print(n_dataset)
<xarray.DataArray (name: 3)>
array([23, 98, 23])
Coordinates:
* name (name) <U7 'joaquin' 'manolo' 'xavier'
======
<xarray.DataArray (name: 3, row: 4, column: 4)>
array([[[ 55, 63, 250, 211],
[204, 151, 164, 237],
[182, 24, 211, 12],
[183, 220, 35, 78]],
[[208, 7, 91, 114],
[195, 30, 108, 130],
[ 61, 224, 105, 125],
[ 65, 1, 132, 137]],
[[ 52, 137, 62, 206],
[188, 160, 156, 126],
[145, 223, 103, 240],
[141, 38, 43, 68]]], dtype=uint8)
Coordinates:
* name (name) <U7 'joaquin' 'manolo' 'xavier'
* row (row) int64 0 1 2 3
* column (column) int64 0 1 2 3
======
<xarray.Dataset>
Dimensions: (column: 4, name: 3, row: 4)
Coordinates:
* name (name) object 'joaquin' 'manolo' 'xavier'
* row (row) int64 0 1 2 3
* column (column) int64 0 1 2 3
Data variables:
number (name) int64 23 98 23
mm (name, row, column) uint8 55 63 250 211 204 151 164 237 182 24 ...
names
作为索引。如果我稍微改变一下代码,那么
names
有重复,比如
names = ["joaquin", "manolo", "joaquin"]
,然后我得到一个
InvalidIndexError
.
names = ["joaquin", "manolo", "joaquin"]
n = xarray.DataArray([23, 98, 23], coords={"name": names})
print(n)
print("======")
m = numpy.random.randint(0, 256, (3, 4, 4)).astype(numpy.uint8)
mm = xarray.DataArray(m, dims=["name", "row", "column"], coords=[names, range(4), range(4)])
print(mm)
print("======")
n_dataset = n.rename("number").to_dataset()
n_dataset["mm"] = mm
print(n_dataset)
<xarray.DataArray (name: 3)>
array([23, 98, 23])
Coordinates:
* name (name) <U7 'joaquin' 'manolo' 'joaquin'
======
<xarray.DataArray (name: 3, row: 4, column: 4)>
array([[[247, 3, 20, 141],
[ 54, 111, 224, 56],
[144, 117, 131, 192],
[230, 44, 174, 14]],
[[225, 184, 170, 248],
[ 57, 105, 165, 70],
[220, 228, 238, 17],
[ 90, 118, 87, 30]],
[[158, 211, 31, 212],
[ 63, 172, 190, 254],
[165, 163, 184, 22],
[ 49, 224, 196, 244]]], dtype=uint8)
Coordinates:
* name (name) <U7 'joaquin' 'manolo' 'joaquin'
* row (row) int64 0 1 2 3
* column (column) int64 0 1 2 3
======
---------------------------------------------------------------------------
InvalidIndexError Traceback (most recent call last)
<ipython-input-12-50863379cefe> in <module>()
8 print("======")
9 n_dataset = n.rename("number").to_dataset()
---> 10 n_dataset["mm"] = mm
11 print(n_dataset)
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/dataset.py in __setitem__(self, key, value)
536 raise NotImplementedError('cannot yet use a dictionary as a key '
537 'to set Dataset values')
--> 538 self.update({key: value})
539
540 def __delitem__(self, key):
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/dataset.py in update(self, other, inplace)
1434 dataset.
1435 """
-> 1436 variables, coord_names, dims = dataset_update_method(self, other)
1437
1438 return self._replace_vars_and_dims(variables, coord_names, dims,
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/merge.py in dataset_update_method(dataset, other)
492 priority_arg = 1
493 indexes = dataset.indexes
--> 494 return merge_core(objs, priority_arg=priority_arg, indexes=indexes)
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/merge.py in merge_core(objs, compat, join, priority_arg, explicit_coords, indexes)
373 coerced = coerce_pandas_values(objs)
374 aligned = deep_align(coerced, join=join, copy=False, indexes=indexes,
--> 375 skip_single_target=True)
376 expanded = expand_variable_dicts(aligned)
377
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/alignment.py in deep_align(list_of_variable_maps, join, copy, indexes, skip_single_target)
162
163 aligned = partial_align(*targets, join=join, copy=copy, indexes=indexes,
--> 164 skip_single_target=skip_single_target)
165
166 for key, aligned_obj in zip(keys, aligned):
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/alignment.py in partial_align(*objects, **kwargs)
122 valid_indexers = dict((k, v) for k, v in joined_indexes.items()
123 if k in obj.dims)
--> 124 result.append(obj.reindex(copy=copy, **valid_indexers))
125
126 return tuple(result)
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/dataset.py in reindex(self, indexers, method, tolerance, copy, **kw_indexers)
1216
1217 variables = alignment.reindex_variables(
-> 1218 self.variables, self.indexes, indexers, method, tolerance, copy=copy)
1219 return self._replace_vars_and_dims(variables)
1220
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/alignment.py in reindex_variables(variables, indexes, indexers, method, tolerance, copy)
234 target = utils.safe_cast_to_index(indexers[name])
235 indexer = index.get_indexer(target, method=method,
--> 236 **get_indexer_kwargs)
237
238 to_shape[name] = len(target)
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pandas/indexes/base.py in get_indexer(self, target, method, limit, tolerance)
2080
2081 if not self.is_unique:
-> 2082 raise InvalidIndexError('Reindexing only valid with uniquely'
2083 ' valued Index objects')
2084
InvalidIndexError: Reindexing only valid with uniquely valued Index objects
最佳答案
感谢您的详细报告,此问题现已在最新版本的 xarray (v0.8.2) 中得到修复。
我们通过两种方式修复了该行为:
ValueError: cannot reindex or align along dimension 'x' because the index has duplicate values
. 关于Python Xarray 将 DataArray 添加到数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38826505/
我正在尝试使用有关单元格的一些元信息填充 DataArray,以将其添加到数据集中。 airtemps = xr.tutorial.load_dataset('air_temperature') ai
DataArray.mean 不保留取决于应用平均值的维度的坐标。 注意:XLAT 和 XLONG 与时间无关;然而,一些 netcdf 文件具有沿这两个方向的时间坐标。 我有这个 netcdf 文件
我的函数内部有一个 DataFrame: using DataFrames myservs = DataFrame(serverName = ["elmo", "bigBird", "Oscar",
我无法弄清楚 xarray 的一些基本使用模式。这是我过去可以在 numpy 中轻松完成的事情:(在另一个数组中设置满足特定条件的元素) import numpy as np q_index = np
在 xarray 中使用 DataArray 对象是查找所有具有值 != 0 的单元格的最佳方法。 例如在 Pandas 我会做 df.loc[df.col1 > 0] 我的具体例子是我试图查看 3
对于我的 Python 包 numericalmodel这应该有助于对简单的数值模型进行原型(prototype)设计,我为自描述数据集编写了类。我最近偶然发现了很棒的 xarray library现
很简单的问题,但我在网上找不到答案。我有一个 Dataset我只想添加一个名为 DataArray到它。类似 dataset.add({"new_array": new_data_array}) .我
假设我有以下 DataArray arr = xarray.DataArray(np.arange(6).reshape(2,3), dims=['A'
假设以下代码具有 xarray.DataArray有两个维度和一个坐标: import numpy as np from xarray import DataArray data = np.rando
我有一个 xarray DataArray,它的形状如下所示 (1,5,73,144,17),我正在尝试删除或删除“级别”坐标。所以,最终,我需要变量具有形状 = (1,5,73,144)。 stdn
我有一个 3 维 xarray DataArray,其中两个维度代表 x-y 网格,第三个维度代表彼此“堆叠”的网格层数。空的 DataArray 看起来像这样: import xarray as x
我正在尝试向 DataArray 添加一个具有一定长度的新维度。 我尝试使用expand_dims方法,其文档表明我应该能够做到这一点 http://xarray.pydata.org/en/stab
我正在使用 laravel 的 Model::create() 函数在数据库中创建一个新条目,但我传递到该函数的数组失败,因为它删除了其中一行。 这是我的数组全静态。这也符合我的数据库表的样子。 $d
我有一个 xarray.DataArray: array([ 5.437614e+01, 2.090367e+02, 3.687384e+02, ..., 5.121467e-02,
我有一个一维的 DataArray,每个值对应一个 ID。我正在尝试以相同的格式创建一个新数组,其中包含值超出限制的任何情况下的值和 ID 我尝试过使用xr.DataArray.where(condi
我需要向 DataArray 添加一个维度,填充新维度中的值。这是原始数组。 a_size = 10 a_coords = np.linspace(0, 1, a_size) b_size = 5 b
我对python有点陌生。我有一个 xarray DataArray 包含一个由浮点数组成的变量。这些浮点数应该是秒。我想将这些浮点数添加到给定日期: 2021-01-01 00:00:00 + 1
我有一个名为 rio 的 DataArray 对象。 In [59]: rio Out[59]: array([[[0, 0, ..., 0, 0], [0, 0, ..., 0,
我已经从多个源 hdf5 文件构建了一个巨大的 dask 数组。 假设数据仅来自一个 hdf5 文件: import dask.array as da import h5py import xarra
关注 How to add vectors to the columns of some array in Julia? ,我想对 DataArrays 进行一些类似的说明。 让 y=randn(10
我是一名优秀的程序员,十分优秀!