Kronecker products can be used to efficiently and easily create 2D and 3D finite difference (and other) operators based on simple 1D operators for derivatives. Here’s a Jupyter notebook that shows you how to do this.
You can find this notebook on nbviewer here.