XNMF
The XNMF code here is written in Python using just numpy. The required inputs are the matrix V, the number of allowable runs of the algorithm, nRuns, an initialised sets of W1, H1, H2 matrices and the set matrix W2 (which is not updated by the algorithm).
Code here is from the paper: Squires, Steven, Luis Montesdeoca, Adam Prügel-Bennett, and Mahesan Niranjan. "Non-negative matrix factorization with exogenous inputs for modeling financial data." In Neural Information Processing: 24th International Conference, ICONIP 2017, Guangzhou, China, November 14-18, 2017, Proceedings, Part II 24, pp. 873-881. Springer International Publishing, 2017.