public static bool CompareArrays(NpyArray T1, NpyArray T2) { return(CompareArrays(T1.data, T2.data)); }
static bool numpy_interface_array_new_wrapper(NpyArray newArray, bool ensureArray, bool customStrides, object subtype, object interfaceData, ref object interfaceRet) { return(true); }
public static void DefaultCastFunction(VoidPtr Src, VoidPtr Dest, int srclen, NpyArray srcArray, NpyArray destArray) { numpyAPI.DefaultCastFunction(Src, Dest, srclen, srcArray, destArray); return; }
/// <summary> /// Recursively walks the array and appends a representation of each element /// to the passed string builder. Square brackets delimit each array dimension. /// </summary> /// <param name="sb">StringBuilder instance to append to</param> /// <param name="dimensions">Array of size of each dimension</param> /// <param name="strides">Offset in bytes to reach next element in each dimension</param> /// <param name="dimIdx">Index of the current dimension (starts at 0, recursively counts up)</param> /// <param name="offset">Byte offset into data array, starts at 0</param> private static void DumpArray(NpyArray arr, List <string> sb, npy_intp[] dimensions, npy_intp[] strides, int dimIdx, npy_intp offset, npy_intp totalElements, int IndentCount, bool UseParensForMarkers) { if (dimIdx == arr.nd) { Object value = arr.descr.f.getitem(offset, arr); if (value == null) { sb.Add("None"); } else { string strValue = ""; switch (arr.ItemType) { case NPY_TYPES.NPY_FLOAT: float fValue = (float)value; strValue = fValue.ToString(); if (!strValue.Contains(".")) { strValue += ".0"; } strValue += "f"; break; case NPY_TYPES.NPY_DOUBLE: double dValue = (double)value; strValue = dValue.ToString(); if (!strValue.Contains(".")) { strValue += ".0"; } break; case NPY_TYPES.NPY_DECIMAL: decimal ddValue = (decimal)value; strValue = ddValue.ToString(); if (!strValue.Contains(".")) { strValue += ".0"; } strValue += "m"; break; default: strValue = value.ToString(); break; } sb.Add(strValue); } } else { string RowStartMarker; string RowEndMarker; if (UseParensForMarkers) { RowStartMarker = "{ "; RowEndMarker = " }\n"; } else { RowStartMarker = "[ "; RowEndMarker = " ]\n"; } string StartRow = InsertRowStartOffsets(sb, IndentCount); StartRow += RowStartMarker; sb.Add(StartRow); IndentCount++; for (int i = 0; i < dimensions[dimIdx]; i++) { DumpArray(arr, sb, dimensions, strides, dimIdx + 1, offset + (strides[dimIdx] * i), totalElements, IndentCount, UseParensForMarkers); if (i < dimensions[dimIdx] - 1) { string LastRow = sb[sb.Count - 1]; if (LastRow.EndsWith(RowEndMarker)) { sb[sb.Count - 1] = LastRow.TrimEnd() + ",\n"; } else { sb.Add(", "); } } } string LastRow2 = sb[sb.Count - 1]; if (LastRow2.EndsWith(RowEndMarker)) { sb[sb.Count - 1] = LastRow2.TrimEnd() + RowEndMarker; } else { sb.Add(RowEndMarker); IndentCount--; } } }
/// <summary> /// Recursively walks the array and appends a representation of each element /// to the passed string builder. Square brackets delimit each array dimension. /// </summary> /// <param name="sb">StringBuilder instance to append to</param> /// <param name="dimensions">Array of size of each dimension</param> /// <param name="strides">Offset in bytes to reach next element in each dimension</param> /// <param name="dimIdx">Index of the current dimension (starts at 0, recursively counts up)</param> /// <param name="offset">Byte offset into data array, starts at 0</param> private static void DumpArray(NpyArray arr, StringBuilder sb, npy_intp[] dimensions, npy_intp[] strides, int dimIdx, long offset, npy_intp totalElements) { if (dimIdx == arr.nd) { Object value = arr.descr.f.getitem(offset, arr); if (value == null) { sb.Append("None"); } else { string strValue = ""; switch (arr.ItemType) { case NPY_TYPES.NPY_FLOAT: float fValue = (float)value; strValue = fValue.ToString(); if (!strValue.Contains(".")) { if (totalElements == 1) { strValue += ".0"; } else { strValue += "."; } } break; case NPY_TYPES.NPY_CDOUBLE: case NPY_TYPES.NPY_DOUBLE: case NPY_TYPES.NPY_LONGDOUBLE: case NPY_TYPES.NPY_CLONGDOUBLE: double dValue = (double)value; strValue = dValue.ToString(); if (!strValue.Contains(".")) { if (totalElements == 1) { strValue += ".0"; } else { strValue += "."; } } break; default: strValue = value.ToString(); break; } sb.Append(strValue); } } else { sb.Append('['); for (int i = 0; i < dimensions[dimIdx]; i++) { DumpArray(arr, sb, dimensions, strides, dimIdx + 1, offset + (strides[dimIdx] * i), totalElements); if (i < dimensions[dimIdx] - 1) { sb.Append(", "); } } sb.Append("]\n"); } }
internal void SetItem(Object value, long offset, NpyArray arr) { SetFunc(value, arr.data + offset, arr); }
internal Object GetItem(long offset, NpyArray arr) { return(GetFunc(arr.data + offset, arr)); }