Sending NumPy arrays to Java

Like Python, Java is a very popular programming language. We installed Java in Chapter 8, Working with Databases, as a prerequisite to using Cassandra. To run Java code, we need the Java Runtime Environment (JRE). For development, the Java Development Kit (JDK) is required.

Jython is an implementation of Python written in Java. Jython code can use any Java class. However, Python modules written in C cannot be imported in Jython. This is an issue, because many numerical and data analysis Python libraries have modules written in C. The JPype package offers a solution and can be downloaded from http://pypi.python.org/pypi/JPype1 or http://github.com/originell/jpype. The most current JPype version at the time of writing was 0.5.5.2. Once you have downloaded and unpacked JPype, run the following command:

$ python setup.py install

Start the Java Virtual Machine (JVM) with the following line:

jpype.startJVM(jpype.getDefaultJVMPath())

Create a JPype array JArray with some random values:

values = np.random.randn(7)
java_array = jpype.JArray(jpype.JDouble, 1)(values.tolist())

Print each array element as follows:

for item in java_array:
   jpype.java.lang.System.out.println(item)

At the end, we should shut down the JVM with the following line:

jpype.shutdownJVM()

The following is the code listing from the java_demo.py file in this book's code bundle:

import jpype
import numpy as np
from numpy import random
jpype.startJVM(jpype.getDefaultJVMPath())

random.seed(44)
values = np.random.randn(7)
java_array = jpype.JArray(jpype.JDouble, 1)(values.tolist())

for item in java_array:
   jpype.java.lang.System.out.println(item)

jpype.shutdownJVM()
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.21.248.162