Friends-of-friends cluster finding in python
Project description
pyfof
=====
Friends of Friends cluster finding in python.
This implements the friends-of-friends algorithm to find clusters of points,
accelerated with an R*-tree.
## Requirements
* c++11 complient compiler
* [Cython](http://cython.org/)
* [numpy](http://www.numpy.org/)
* [boost](http://www.boost.org/)
## Installation
If your boost installation is in a normal place you should just be able to install
the latest release of the package directly from PyPI
```pip install pyfof```
If that fails then you will need to tell pip where to find your boost include
directory. This can be done by creating a file in your home directory called ```.pydistutils.cfg``` containing:
```
[build_ext]
include_dirs=/path/to/boost/include/directory
```
Then running the above command.
## Examples
### Two Gaussian blobs
```python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import pyfof
npts = 10000
data = np.vstack((np.random.normal(-1,0.2,(npts/2,2)),\
np.random.normal(1,0.2,(npts/2,2))))
groups = pyfof.friends_of_friends(data, 0.4)
colors = cm.rainbow(np.linspace(0, 1, len(groups)))
for g,c in zip(groups, colors):
plt.scatter(data[g,0], data[g,1], color=c, s=3)
plt.show()
```
![gaussian_example](https://raw.githubusercontent.com/simongibbons/pyfof/screenshots/img/gaussian_example.png)
### A more complicated example
![stream_example](https://raw.githubusercontent.com/simongibbons/pyfof/screenshots/img/stream_example.png)
=====
Friends of Friends cluster finding in python.
This implements the friends-of-friends algorithm to find clusters of points,
accelerated with an R*-tree.
## Requirements
* c++11 complient compiler
* [Cython](http://cython.org/)
* [numpy](http://www.numpy.org/)
* [boost](http://www.boost.org/)
## Installation
If your boost installation is in a normal place you should just be able to install
the latest release of the package directly from PyPI
```pip install pyfof```
If that fails then you will need to tell pip where to find your boost include
directory. This can be done by creating a file in your home directory called ```.pydistutils.cfg``` containing:
```
[build_ext]
include_dirs=/path/to/boost/include/directory
```
Then running the above command.
## Examples
### Two Gaussian blobs
```python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import pyfof
npts = 10000
data = np.vstack((np.random.normal(-1,0.2,(npts/2,2)),\
np.random.normal(1,0.2,(npts/2,2))))
groups = pyfof.friends_of_friends(data, 0.4)
colors = cm.rainbow(np.linspace(0, 1, len(groups)))
for g,c in zip(groups, colors):
plt.scatter(data[g,0], data[g,1], color=c, s=3)
plt.show()
```
![gaussian_example](https://raw.githubusercontent.com/simongibbons/pyfof/screenshots/img/gaussian_example.png)
### A more complicated example
![stream_example](https://raw.githubusercontent.com/simongibbons/pyfof/screenshots/img/stream_example.png)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyfof-0.1.1.tar.gz
(41.0 kB
view details)
File details
Details for the file pyfof-0.1.1.tar.gz
.
File metadata
- Download URL: pyfof-0.1.1.tar.gz
- Upload date:
- Size: 41.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | edf3d09fc4292487f4086fcb5bb3f213f0ced5c9884a70b2793c2980c42d1bae |
|
MD5 | 718455b7038b6fb0a0e06ad742bc0713 |
|
BLAKE2b-256 | 9c7c83c3d259e9ff571eaaa5f3aeda56f8f4e82c60bf252a99eb3d43e62fe376 |