@@ -1070,4 +1070,69 @@ def display(a, precision=4):
1070
1070
safe_call (backend .get ().af_print_array_gen (name .encode ('utf-8' ),
1071
1071
a .arr , ct .c_int (precision )))
1072
1072
1073
+ def save_array (key , a , filename , append = False ):
1074
+ """
1075
+ Save an array to disk.
1076
+
1077
+ Parameters
1078
+ ----------
1079
+ key : str
1080
+ A name / key associated with the array
1081
+
1082
+ a : af.Array
1083
+ The array to be stored to disk
1084
+
1085
+ filename : str
1086
+ Location of the data file.
1087
+
1088
+ append : Boolean. optional. default: False.
1089
+ If the file already exists, specifies if the data should be appended or overwritten.
1090
+
1091
+ Returns
1092
+ ---------
1093
+ index : int
1094
+ The index of the array stored in the file.
1095
+ """
1096
+ index = ct .c_int (- 1 )
1097
+ safe_call (backend .get ().af_save_array (ct .pointer (index ),
1098
+ key .encode ('utf-8' ),
1099
+ a .arr ,
1100
+ filename .encode ('utf-8' ),
1101
+ append ))
1102
+ return index .value
1103
+
1104
+ def read_array (filename , index = None , key = None ):
1105
+ """
1106
+ Read an array from disk.
1107
+
1108
+ Parameters
1109
+ ----------
1110
+
1111
+ filename : str
1112
+ Location of the data file.
1113
+
1114
+ index : int. Optional. Default: None.
1115
+ - The index of the array stored in the file.
1116
+ - If None, key is used.
1117
+
1118
+ key : str. Optional. Default: None.
1119
+ - A name / key associated with the array
1120
+ - If None, index is used.
1121
+
1122
+ Returns
1123
+ ---------
1124
+ """
1125
+ assert ((index is not None ) or (key is not None ))
1126
+ out = Array ()
1127
+ if (index is not None ):
1128
+ safe_call (backend .get ().af_read_array_index (ct .pointer (out .arr ),
1129
+ filename .encode ('utf-8' ),
1130
+ index ))
1131
+ elif (key is not None ):
1132
+ safe_call (backend .get ().af_read_array_key (ct .pointer (out .arr ),
1133
+ filename .encode ('utf-8' ),
1134
+ key .encode ('utf-8' )))
1135
+
1136
+ return out
1137
+
1073
1138
from .algorithm import sum
0 commit comments