@@ -686,7 +686,10 @@ def _read_index_node(self, node):
686
686
def _write_array (self , group , key , value ):
687
687
if key in group :
688
688
self .handle .removeNode (group , key )
689
-
689
+
690
+ #Transform needed to interface with pytables row/col notation
691
+ value = value .T
692
+
690
693
if self .filters is not None :
691
694
atom = None
692
695
try :
@@ -701,6 +704,7 @@ def _write_array(self, group, key, value):
701
704
value .shape ,
702
705
filters = self .filters )
703
706
ca [:] = value
707
+ getattr (group , key )._v_attrs .transposed = True
704
708
return
705
709
706
710
if value .dtype .type == np .object_ :
@@ -719,6 +723,8 @@ def _write_array(self, group, key, value):
719
723
getattr (group , key )._v_attrs .shape = value .shape
720
724
else :
721
725
self .handle .createArray (group , key , value )
726
+
727
+ getattr (group , key )._v_attrs .transposed = True
722
728
723
729
def _write_table (self , group , items = None , index = None , columns = None ,
724
730
values = None , append = False , compression = None ):
@@ -958,23 +964,29 @@ def _read_array(group, key):
958
964
import tables
959
965
node = getattr (group , key )
960
966
data = node [:]
967
+ attrs = node ._v_attrs
968
+
969
+ transposed = getattr (attrs , 'transposed' , False )
961
970
962
971
if isinstance (node , tables .VLArray ):
963
- return data [0 ]
972
+ ret = data [0 ]
964
973
else :
965
- attrs = node ._v_attrs
966
-
967
974
dtype = getattr (attrs , 'value_type' , None )
968
975
shape = getattr (attrs , 'shape' , None )
969
976
970
977
if shape is not None :
971
978
# length 0 axis
972
- return np .empty (shape , dtype = dtype )
979
+ ret = np .empty (shape , dtype = dtype )
973
980
974
981
if dtype == 'datetime64' :
975
- return np .array (data , dtype = 'M8[ns]' )
976
- return data
977
-
982
+ ret = np .array (data , dtype = 'M8[ns]' )
983
+ ret = data
984
+
985
+ if transposed == True :
986
+ return ret .T
987
+ else :
988
+ return ret
989
+
978
990
def _unconvert_index (data , kind ):
979
991
if kind == 'datetime64' :
980
992
index = DatetimeIndex (data )
0 commit comments