本文整理汇总了Python中org.meteoinfo.data.ArrayMath.takeValues方法的典型用法代码示例。如果您正苦于以下问题:Python ArrayMath.takeValues方法的具体用法?Python ArrayMath.takeValues怎么用?Python ArrayMath.takeValues使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.meteoinfo.data.ArrayMath
的用法示例。
在下文中一共展示了ArrayMath.takeValues方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __getitem__
# 需要导入模块: from org.meteoinfo.data import ArrayMath [as 别名]
# 或者: from org.meteoinfo.data.ArrayMath import takeValues [as 别名]
def __getitem__(self, indices):
#print type(indices)
if not isinstance(indices, tuple):
inds = []
inds.append(indices)
indices = inds
allint = True
aindex = self.array.getIndex()
i = 0
for ii in indices:
if isinstance(ii, int):
if ii < 0:
ii = self.shape[i] + ii
aindex.setDim(i, ii)
else:
allint = False
break;
i += 1
if allint:
return self.array.getObject(aindex)
if self.ndim == 0:
return self
if len(indices) != self.ndim:
print 'indices must be ' + str(self.ndim) + ' dimensions!'
raise IndexError()
ranges = []
flips = []
onlyrange = True
alllist = True
isempty = False
nshape = []
for i in range(0, self.ndim):
k = indices[i]
if isinstance(k, int):
if k < 0:
k = self._shape[i] + k
sidx = k
eidx = k
step = 1
alllist = False
elif isinstance(k, slice):
sidx = 0 if k.start is None else k.start
if sidx < 0:
sidx = self._shape[i] + sidx
eidx = self._shape[i] if k.stop is None else k.stop
if eidx < 0:
eidx = self._shape[i] + eidx
eidx -= 1
step = 1 if k.step is None else k.step
alllist = False
elif isinstance(k, (list, tuple, MIArray)):
if isinstance(k, MIArray):
k = k.aslist()
if isinstance(k[0], bool):
kk = []
for i in range(len(k)):
if k[i]:
kk.append(i)
k = kk
onlyrange = False
ranges.append(k)
continue
else:
print k
return None
if step < 0:
step = abs(step)
flips.append(i)
if eidx < sidx:
tempidx = sidx
sidx = eidx + 2
eidx = tempidx
if sidx >= self.shape[i]:
raise IndexError()
if eidx < sidx:
isempty = True
else:
rr = Range(sidx, eidx, step)
ranges.append(rr)
nshape.append(eidx - sidx + 1 if eidx - sidx >= 0 else 0)
if isempty:
r = ArrayUtil.zeros(nshape, 'int')
return MIArray(r)
if onlyrange:
r = ArrayMath.section(self.array, ranges)
else:
if alllist:
r = ArrayMath.takeValues(self.array, ranges)
else:
r = ArrayMath.take(self.array, ranges)
if r.getSize() == 1:
r = r.getObject(0)
if isinstance(r, Complex):
return complex(r.getReal(), r.getImaginary())
#.........这里部分代码省略.........