pnoise is a pure-Python, Numpy-based, vectorized port of Processing's noise() function. The p in pnoise stands for Processing, Perlin, Python, "port", and probably other things I haven't though of yet.
I wrote this port before switching to vnoise and, although I'm no longer using it, I figured I would keep it around.
| pnoise | vnoise | |
|---|---|---|
| Algorithm | "classic Perlin noise of 1983" | "Perlin improved noise" | 
| License | LGPL v2.1 | MIT | 
| Scalar API | ✅ | ✅ | 
| Vectorized API | ✅ | ✅ | 
| 3D function | ✅ | ✅ | 
| 2D function | ❌ (can be derived from 3D but slower) | ✅ | 
| 1D function | ❌ (can be derived from 3D but slower) | ✅ | 
See a performance comparison here.
pip install pnoise
LGPL 2.1, see LICENSE file.