2019-06-06 15:21:15 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Jumpy: Python interface for [nd4j ](https://nd4j.org )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								===========================================
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[](https://gitter.im/deeplearning4j/deeplearning4j?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge)
							 
						 
					
						
							
								
									
										
										
										
											2019-09-10 19:09:46 +10:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[](https://github.com/eclipse/deeplearning4j/blob/master/jumpy/LICENSE)
							 
						 
					
						
							
								
									
										
										
										
											2019-06-06 15:21:15 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								[](https://badge.fury.io/py/jumpy)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Jumpy allows you to use ND4J from Python _without any network communication_ . Many other Python libraries bridging Java
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								have considerable overhead, jumpy uses pointers to directly access your numpy arrays. Under the hood, Jumpy uses `pydl4j`  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for dependency management and `pyjnius`  to load Java classes.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Installation
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Jumpy is on PyPI, simply install it with
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								pip install jumpy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								or build it from source:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								python setup.py install
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Using Jumpy
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Creating arrays
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Just like numpy, you can initialize an array using `.zeros()`  or `.ones()` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```python
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import jumpy as jp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								x = jp.zeros((32, 16))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								y = jp.ones((32, 16))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Converting numpy array to jumpy array
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								A numpy `ndarray`  instance can be converted to a jumpy `ndarray`  instance (and vice-versa) without copying the data
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```python
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import jumpy as jp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import numpy as np
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								x_np = np.random.random((100, 50))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								x_jp = jp.array(x_np)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Converting jumpy array to numpy array
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Simply call the `.numpy()`  method of `jumpy.ndarray.ndarray` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```python
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import jumpy as jp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								x_jp = jp.zeros((100,50))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								x_np = x_jp.numpy()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Operations
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Basic operators like `+`  `-`  `*`  `/`  `+=`  `-=`  `*=`  `/=`  are overloaded and broadcasting is supported. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Indexing, slicing and assignment behaviour has been made as close to numpy as possible. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Check `jumpy/ops/`  to see available ops. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Contribute
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Check for open issues, or open a new issue to start a discussion around a feature idea or a bug. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  We could use more ops! Have a look at available ops (`jumpy/ops/` ), it's quite easy to add new ones. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Send a pull request and bug us on Gitter until it gets merged and published. :)