Python Nelson types

Managing Data between Python and Nelson.

Description

Managing data returned by Python functions:

Python return type, as shown in Python
Corresponding Nelson type (scalar)

bool

logical

complex

double (complex)

float

double

Convert Python types to Nelson type explicitly:

Python return types or protocols shown in Nelson
Nelson conversion methods

py.str

char, string

py.int

double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64

py.long

double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64

py.float

double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64

py.bool

double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64, logical

py.bytes

double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64, logical

py.bytearray

double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64, logical

py.array.array

double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64

py.memoryview

double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64

py.numpy.ndarray

double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64

py.list

double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64, logical, string, cell

py.tuple

double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64, logical, string, cell

py.dict

struct

Pass scalar Nelson type to Python:

Nelson scalar input argument type
Python type

NaN

float("nan")

Inf

float("inf")

double (real)

py.float

single (real)

py.float

double (complex)

py.complex

single (complex)

py.complex

int8

py.int

uint8

py.int

int16

py.int

uint16

py.int

int32

py.int

uint32

py.int

int64

py.int

uint64

py.int

string scalar

py.str

char vector

py.str

logical

py.bool

struct

py.dict

Pass 1-by-N Vector Nelson type to Python:

Nelson 1-by-N Vector input argument type
Python type

double (real)

array.array('d')

single (real)

array.array('f')

int8

array.array('b')

uint8

array.array('B')

int16

array.array('h')

uint16

array.array('H')

int32

array.array('i')

uint32

array.array('I')

int64

array.array('q')

uint64

array.array('Q')

double

memoryview

single

memoryview

logical

memoryview

char vector

str

string scalar

str

cell vector

tuple

Pass 2D Matrices and ND Arrays to Python:

The Python language offers a protocol for accessing memory buffers, akin to the data stored in Nelson arrays.

Nelson incorporates this Python buffer protocol for its arrays.

Examples

R = pyrun('', "A", 'A', magic(3))
R.double()

dictionary conversion nelson -- python

wheels = [1 2 3];
names = ["Monocycle" "Bicycle" "Tricycle"];
d = dictionary(wheels, names)
R = pyrun("A = d", "A", 'd', d)
dictionary(R)

See also

pyrun, dictionary.

History

Version
Description

1.4.0

initial version

Author

Allan CORNET

Last updated