| << How to install python package | Python engine | Python operators >> |
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.
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)
| Version | Description |
|---|---|
| 1.4.0 | initial version |
Allan CORNET