Skip to content

Commit

Permalink
bugfix for array view problems
Browse files Browse the repository at this point in the history
  • Loading branch information
Yaqiang committed Dec 5, 2019
1 parent 68e6af8 commit b4a828d
Show file tree
Hide file tree
Showing 36 changed files with 3,426 additions and 3,173 deletions.
36 changes: 17 additions & 19 deletions MeteoInfoLab/milconfig.xml
@@ -1,40 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<MeteoInfo File="milconfig.xml" Type="configurefile">
<Path OpenPath="D:\Working\MIScript\Jython\mis\meteo\interpolation">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\toolbox"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\test"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\toolbox\miml"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\toolbox\miml\classification"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\contour"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map\projection"/>
<RecentFolder Folder="D:\Temp\test\newtest"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\meteo"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math"/>
<Path OpenPath="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\linalg"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\meteo\wrf"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\meteo\data"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\meteo\interpolation"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\toolbox\miml\deep_learning"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\interpolate"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\array"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\stats"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\random"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\fitting"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\hdf"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl"/>
</Path>
<File>
<OpenedFiles>
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\traj_4.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\model_selection\train_test_split_2.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\classification\svm_2.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\classification\lda_1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\meteo\interpolation\log_interpolate_1d_1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\classification\tree_1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\wireframe_color.py"/>
</OpenedFiles>
<RecentFiles>
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\traj_4.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\model_selection\train_test_split_2.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\classification\svm_2.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\classification\lda_1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\meteo\interpolation\log_interpolate_1d_1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\classification\tree_1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\wireframe_color.py"/>
</RecentFiles>
</File>
<Font>
<TextFont FontName="宋体" FontSize="15"/>
</Font>
<Startup MainFormLocation="-7,0" MainFormSize="1393,800"/>
<Startup MainFormLocation="-7,0" MainFormSize="1396,794"/>
</MeteoInfo>
Binary file modified MeteoInfoLab/pylib/mipylib/numeric/core/dimarray$py.class
Binary file not shown.
63 changes: 48 additions & 15 deletions MeteoInfoLab/pylib/mipylib/numeric/core/dimarray.py
Expand Up @@ -860,28 +860,61 @@ def maskin(self, mask):
r = DimArray(r, self.dims, self.fill_value, self.proj)
return r

def transpose(self):
def transpose(self, axes=None):
'''
Transpose 2-D array.
Permute the dimensions of an array.
:param axes: (*list of int*) By default, reverse the dimensions, otherwise permute the axes according to the
values given.
:returns: Permuted array.
'''
if axes is None:
axes = [self.ndim-i-1 for i in range(self.ndim)]

r = super(DimArray, self).transpose(axes)

if self.ndim == 1:
dims = self.dims
else:
dims = []
for ax in axes:
dims.append(self.dims[ax])

return DimArray(r, dims, self.fill_value, self.proj)

:returns: Transposed array.
T = property(transpose)

def swapaxes(self, axis1, axis2):
'''
Interchange two axes of an array.
:param axis1: (*int*) First axis.
:param axis2: (*int*) Second axis.
:returns: Axes swapped array.
'''
if self.ndim == 1:
return self[:]
dim1 = 0
dim2 = 1
r = ArrayMath.transpose(self.asarray(), dim1, dim2)
return self

if axis1 < 0:
axis1 = self.ndim + axis1
if axis2 < 0:
axis2 = self.ndim + axis2

if axis1 == axis2:
return self

r = self._array.transpose(axis1, axis2)
dims = []
for i in range(0, self.ndim):
if i == dim1:
dims.append(self.dims[dim2])
elif i == dim2:
dims.append(self.dims[dim1])
for i in range(self.ndim):
if i == axis1:
dims.append(self.dims[axis2])
elif i == axis2:
dims.append(self.dims[axis1])
else:
dims.append(self.dims[i])
return DimArray(NDArray(r), dims, self.fill_value, self.proj)

T = property(transpose)
return DimArray(r, dims, self.fill_value, self.proj)

def inv(self):
'''
Expand Down
Binary file modified MeteoInfoLab/pylib/mipylib/numeric/core/multiarray$py.class
Binary file not shown.
18 changes: 15 additions & 3 deletions MeteoInfoLab/pylib/mipylib/numeric/core/multiarray.py
Expand Up @@ -10,7 +10,6 @@
from org.meteoinfo.math.linalg import LinalgUtil
from org.meteoinfo.ndarray import Array, Range, MAMath, Complex, Dimension

import jarray
import datetime

import _dtype
Expand Down Expand Up @@ -732,8 +731,21 @@ def index(self, v):
:returns: (*int*) Value index.
'''
return self.tolist().index(v)

def asarray(self):
'''
Get backend Java Array
:return: Backend Java Array
'''
return self._array

def backend(self):
'''
Get backend Java Array
:return: Backend Java Array
'''
return self._array

def reshape(self, *args):
Expand All @@ -758,7 +770,7 @@ def reshape(self, *args):
i += 1
if not idx is None:
shape[idx] = self.size / n
shape = jarray.array(shape, 'i')
#shape = jarray.array(shape, 'i')
return NDArray(self._array.reshape(shape))

def transpose(self, axes=None):
Expand Down
Binary file modified MeteoInfoLab/pylib/mipylib/numeric/core/numeric$py.class
Binary file not shown.
28 changes: 2 additions & 26 deletions MeteoInfoLab/pylib/mipylib/numeric/core/numeric.py
Expand Up @@ -1957,19 +1957,7 @@ def transpose(a, axes=None):
:returns: Transposed array.
'''
r = a.transpose(axes)
if type(a) is NDArray:
return NDArray(r)
else:
dims = []
for i in range(0, len(a.dims)):
if i == dim1:
dims.append(a.dims[dim2])
elif i == dim2:
dims.append(a.dims[dim1])
else:
dims.append(a.dims[i])
return DimArray(NDArray(r), dims, a.fill_value, a.proj)
return a.transpose(axes)

def swapaxes(a, axis1, axis2):
'''
Expand All @@ -1980,19 +1968,7 @@ def swapaxes(a, axis1, axis2):
:returns: Axes swapped array.
'''
r = a.swapaxes(axis1, axis2)
if type(a) is NDArray:
return r
else:
dims = []
for i in range(0, len(a.dims)):
if i == dim1:
dims.append(a.dims[dim2])
elif i == dim2:
dims.append(a.dims[dim1])
else:
dims.append(a.dims[i])
return DimArray(r, dims, a.fill_value, a.proj)
return a.swapaxes(axis1, axis2)

def rot90(a, k=1):
"""
Expand Down
Binary file modified MeteoInfoLab/pylib/mipylib/numeric/stats/stats$py.class
Binary file not shown.

0 comments on commit b4a828d

Please sign in to comment.