Source code for tecplot.extension.numpy

"""
Data Access with Numpy
----------------------
"""
from __future__ import absolute_import

import numpy as np

from ctypes import memmove, POINTER, sizeof, c_double, c_float

def as_numpy_array(arr):
    dtypes = {c_double: np.float64, c_float: np.float32}
    ctype = arr.c_type
    size = arr.size
    data = np.empty((size,), dtype=dtypes[ctype])
    data_ptr = data.ctypes.data_as(POINTER(ctype))
    data_size = sizeof(ctype)*size
    memmove(data_ptr, arr.copy(), data_size)
    return data