- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
更新 xarray
后我遇到了麻烦。
我有一个盐度数据集,其尺寸为:
(u'time', u'stations', u'layer')
对于特定站点,我想获取所选深度的盐度,例如 -10 m。维度图层包含随时间变化的深度值,即,给定图层包含随时间变化的不同深度值(由于水位变化)。
之前我做了以下事情:
ds.salinity.sel(stations='mystation').where( np.ceil(ds.layer(stations='mystation')) ==-10 )
运行得很好。
但现在我收到此错误:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-27-7e83f5e839cc> in <module>()
1 fmstation = 'T1_50'
2
----> 3 sal10m = ds.salinity.sel(stations = ds.stations[ds.station_name == fmstation]).where(np.ceil(ds.Zcoordinate_c.isel(stations = ds.stations[ds.station_name == fmstation])) == -10) #.mean(axis=2).plot()
4 sal10m #.plot()
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\xarray\core\common.pyc in where(self, cond)
481 * x (x) int64 0 1 2 3 4
482 """
--> 483 return self._where(cond)
484
485 # this has no runtime function - these are listed so IDEs know these methods
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\xarray\core\dataarray.pyc in func(self, other)
1193 if not reflexive
1194 else f(other_variable, self.variable))
-> 1195 coords = self.coords.merge(other_coords)._variables
1196 name = self._result_name(other)
1197
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\xarray\core\coordinates.pyc in merge(self, other)
139 ds = self.to_dataset()
140 if other is not None:
--> 141 conflicts = self._merge_validate(other)
142 _coord_merge_finalize(ds.coords, other, *conflicts)
143 return ds
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\xarray\core\coordinates.pyc in _merge_validate(self, other)
89 self_var = self._variables[k]
90 other_var = other[k].variable
---> 91 if not self_var.broadcast_equals(other_var):
92 if k in self.dims and k in other.dims:
93 raise ValueError('index %r not aligned' % k)
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\xarray\core\variable.pyc in broadcast_equals(self, other)
976 except (ValueError, AttributeError):
977 return False
--> 978 return self.equals(other)
979
980 def identical(self, other):
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\xarray\core\variable.pyc in equals(self, other)
961 other = getattr(other, 'variable', other)
962 try:
--> 963 return (self.dims == other.dims and self._data_equals(other))
964 except (TypeError, AttributeError):
965 return False
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\xarray\core\variable.pyc in _data_equals(self, other)
947 def _data_equals(self, other):
948 return (self._data is other._data or
--> 949 ops.array_equiv(self.data, other.data))
950
951 def equals(self, other):
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\xarray\core\ops.pyc in array_equiv(arr1, arr2)
188 if arr1.shape != arr2.shape:
189 return False
--> 190 return bool(((arr1 == arr2) | (isnull(arr1) & isnull(arr2))).all())
191
192
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\dask\array\core.pyc in all(self, axis, keepdims, split_every)
1146 def all(self, axis=None, keepdims=False, split_every=None):
1147 from .reductions import all
-> 1148 return all(self, axis=axis, keepdims=keepdims, split_every=split_every)
1149
1150 @wraps(np.min)
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\dask\array\reductions.pyc in all(a, axis, keepdims, split_every)
161 def all(a, axis=None, keepdims=False, split_every=None):
162 return reduction(a, chunk.all, chunk.all, axis=axis, keepdims=keepdims,
--> 163 dtype='bool', split_every=split_every)
164
165
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\dask\array\reductions.pyc in reduction(x, chunk, aggregate, axis, keepdims, dtype, split_every, combine, name)
42
43 return _tree_reduce(tmp, aggregate, axis, keepdims, dtype, split_every,
---> 44 combine, name=name)
45
46
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\dask\array\reductions.pyc in _tree_reduce(x, aggregate, axis, keepdims, dtype, split_every, combine, name)
75 return partial_reduce(func, x, split_every, keepdims=keepdims,
76 dtype=dtype,
---> 77 name=(name or funcname(aggregate)) + '-aggregate')
78
79
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\dask\array\reductions.pyc in partial_reduce(func, x, split_every, keepdims, dtype, name)
105 out_axis = [i for i in range(x.ndim) if i not in split_every]
106 getter = lambda k: get(out_axis, k)
--> 107 keys = map(getter, keys)
108 out_chunks = list(getter(out_chunks))
109 dsk = {}
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\dask\array\reductions.pyc in <lambda>(k)
104 if not keepdims:
105 out_axis = [i for i in range(x.ndim) if i not in split_every]
--> 106 getter = lambda k: get(out_axis, k)
107 keys = map(getter, keys)
108 out_chunks = list(getter(out_chunks))
C:\Users\Smeirellesnune\AppData\Local\Continuum\Miniconda\lib\site-packages\toolz\itertoolz.pyc in get(ind, seq, default)
374 return operator.itemgetter(*ind)(seq)
375 else:
--> 376 return (seq[ind[0]],)
377 else:
378 return tuple(_get(i, seq, default) for i in ind)
IndexError: list index out of range
有人知道这里发生了什么吗?
或者有没有更智能的方法来切片我的数据集?
我使用的xarray版本是:
xarray 0.7.2
系统版本:
'2.7.11 |Anaconda 2.1.0 (64-bit)| (default, Feb 16 2016, 09:58:36) [MSC v.1500 64 bit (AMD64)]'
编辑:添加数据集详细信息
<xarray.Dataset>
Dimensions: (cross_section: 15, cross_section_pts: 3, laydim: 20, laydimw: 21, stations: 979, time: 2512)
Coordinates:
station_x_coordinate (stations) float64 4.194 4.008 ...
station_y_coordinate (stations) float64 52.07 51.99 52.0 ...
station_name (stations) |S64 'zmBoei_wav' ...
Zcoordinate_c (time, stations, laydim) float64 -10.98 ...
Zcoordinate_w (time, stations, laydimw) float64 -11.28 ...
cross_section_name (cross_section) |S64 'L1' 'L2' 'L3' ...
* time (time) datetime64[ns] 2014-10-02T06:00:00 ...
* cross_section (cross_section) int64 0 1 2 3 4 5 6 ...
* cross_section_pts (cross_section_pts) int64 0 1 2
* laydim (laydim) int64 0 1 2 3 4 5 6 7 8 9 ...
* laydimw (laydimw) int64 0 1 2 3 4 5 6 7 8 9 ...
* stations (stations) int64 0 1 2 3 4 5 6 7 8 ...
Data variables:
station_id (stations) |S64 'zmBoei_wav' ...
waterlevel (time, stations) float64 0.6178 ...
Waterdepth (time, stations) float64 11.9 20.36 ...
x_velocity (time, stations, laydim) float64 0.1941 ...
y_velocity (time, stations, laydim) float64 0.0954 ...
z_velocity (time, stations, laydim) float64 0.000392 ...
Tke (time, stations, laydimw) float64 1e-32 ...
Eps (time, stations, laydimw) float64 1e-32 ...
Vicww (time, stations, laydimw) float64 0.0 ...
salinity (time, stations, laydim) float64 26.26 ...
cross_section_x_coordinate (cross_section, cross_section_pts) float64 4.206 ...
cross_section_y_coordinate (cross_section, cross_section_pts) float64 51.94 ...
cross_section_discharge (time, cross_section) float64 0.0 ...
cross_section_area (time, cross_section) float64 8.762e+03 ...
cross_section_velocity (time, cross_section) float64 0.0 ...
cross_section_salt (time, cross_section) float64 -1.142e+05 ...
WaterBalance_total_volume (time) float64 0.0 1.227e+11 ...
WaterBalance_storage (time) float64 0.0 1.227e+11 ...
WaterBalance_volume_error (time) float64 0.0 -1.499e+07 ...
WaterBalance_boundaries_in (time) float64 0.0 3.827e+08 ...
WaterBalance_boundaries_out (time) float64 0.0 6.048e+07 ...
WaterBalance_boundaries_total (time) float64 0.0 3.222e+08 ...
WaterBalance_exchange_with_1D_in (time) float64 0.0 0.0 0.0 0.0 0.0 ...
WaterBalance_exchange_with_1D_out (time) float64 0.0 0.0 0.0 0.0 0.0 ...
WaterBalance_exchange_with_1D_total (time) float64 0.0 0.0 0.0 0.0 0.0 ...
WaterBalance_precipitation (time) float64 0.0 0.0 0.0 0.0 0.0 ...
WaterBalance_source_sink (time) float64 0.0 0.0 0.0 0.0 0.0 ...
Attributes:
institution: Deltares
references: http://www.deltares.nl
source: Deltares, D-Flow FM Version 1.1.182.45395, Apr 07 2016, 10:16:58, model
history: Created on 2016-05-23T21:50:20+0200, D-Flow FM
date_created: 2016-05-23T21:50:20+0200
date_modified: 2016-05-23T21:50:20+0200
Conventions: CF-1.5 Deltares-0.1
最佳答案
从 IOOS channel 安装软件包以及 dask 解决了这个问题。要设置 IOOS Python 环境,请按照以下步骤操作:
https://github.com/ioos/conda-recipes/wiki/Setting-up-the-IOOS-Python-environment
正如 @Stephan 指出的:现在通用的“conda-forge” channel 应该优先于 IOOS。了解更多信息:
https://conda-forge.github.io/
其次,安装dask如下:
conda install dask -c conda-forge
启动Python之前激活IOOS:
source activate IOOS #(OSX and Linux)
activate IOOS #(Windows)
关于python - 使用 Python xarray 屏蔽 'where' 不再起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37593785/
我正在处理一组标记为 160 个组的 173k 点。我想通过合并最接近的(到 9 或 10 个组)来减少组/集群的数量。我搜索过 sklearn 或类似的库,但没有成功。 我猜它只是通过 knn 聚类
我有一个扁平数字列表,这些数字逻辑上以 3 为一组,其中每个三元组是 (number, __ignored, flag[0 or 1]),例如: [7,56,1, 8,0,0, 2,0,0, 6,1,
我正在使用 pipenv 来管理我的包。我想编写一个 python 脚本来调用另一个使用不同虚拟环境(VE)的 python 脚本。 如何运行使用 VE1 的 python 脚本 1 并调用另一个 p
假设我有一个文件 script.py 位于 path = "foo/bar/script.py"。我正在寻找一种在 Python 中通过函数 execute_script() 从我的主要 Python
这听起来像是谜语或笑话,但实际上我还没有找到这个问题的答案。 问题到底是什么? 我想运行 2 个脚本。在第一个脚本中,我调用另一个脚本,但我希望它们继续并行,而不是在两个单独的线程中。主要是我不希望第
我有一个带有 python 2.5.5 的软件。我想发送一个命令,该命令将在 python 2.7.5 中启动一个脚本,然后继续执行该脚本。 我试过用 #!python2.7.5 和http://re
我在 python 命令行(使用 python 2.7)中,并尝试运行 Python 脚本。我的操作系统是 Windows 7。我已将我的目录设置为包含我所有脚本的文件夹,使用: os.chdir("
剧透:部分解决(见最后)。 以下是使用 Python 嵌入的代码示例: #include int main(int argc, char** argv) { Py_SetPythonHome
假设我有以下列表,对应于及时的股票价格: prices = [1, 3, 7, 10, 9, 8, 5, 3, 6, 8, 12, 9, 6, 10, 13, 8, 4, 11] 我想确定以下总体上最
所以我试图在选择某个单选按钮时更改此框架的背景。 我的框架位于一个类中,并且单选按钮的功能位于该类之外。 (这样我就可以在所有其他框架上调用它们。) 问题是每当我选择单选按钮时都会出现以下错误: co
我正在尝试将字符串与 python 中的正则表达式进行比较,如下所示, #!/usr/bin/env python3 import re str1 = "Expecting property name
考虑以下原型(prototype) Boost.Python 模块,该模块从单独的 C++ 头文件中引入类“D”。 /* file: a/b.cpp */ BOOST_PYTHON_MODULE(c)
如何编写一个程序来“识别函数调用的行号?” python 检查模块提供了定位行号的选项,但是, def di(): return inspect.currentframe().f_back.f_l
我已经使用 macports 安装了 Python 2.7,并且由于我的 $PATH 变量,这就是我输入 $ python 时得到的变量。然而,virtualenv 默认使用 Python 2.6,除
我只想问如何加快 python 上的 re.search 速度。 我有一个很长的字符串行,长度为 176861(即带有一些符号的字母数字字符),我使用此函数测试了该行以进行研究: def getExe
list1= [u'%app%%General%%Council%', u'%people%', u'%people%%Regional%%Council%%Mandate%', u'%ppp%%Ge
这个问题在这里已经有了答案: Is it Pythonic to use list comprehensions for just side effects? (7 个答案) 关闭 4 个月前。 告
我想用 Python 将两个列表组合成一个列表,方法如下: a = [1,1,1,2,2,2,3,3,3,3] b= ["Sun", "is", "bright", "June","and" ,"Ju
我正在运行带有最新 Boost 发行版 (1.55.0) 的 Mac OS X 10.8.4 (Darwin 12.4.0)。我正在按照说明 here构建包含在我的发行版中的教程 Boost-Pyth
学习 Python,我正在尝试制作一个没有任何第 3 方库的网络抓取工具,这样过程对我来说并没有简化,而且我知道我在做什么。我浏览了一些在线资源,但所有这些都让我对某些事情感到困惑。 html 看起来
我是一名优秀的程序员,十分优秀!