NumPy Psi4 dependency

Greeting Psi4 users and developers,
It was mentioned in a meeting earlier this month that the possibility of a Psi4 dependence on Numpy could occur in the near future. I believe many view NumPy to be fundamental to scientific python at this point, and we would like to leverage some of these capabilities within the driver without reinventing the wheel so to speak. However, I wanted to obtain additional feedback before we just dropped this in.


New features:

  1. All Psi4 Matrices and Vectors can be read by NumPy np.array(psi4.Matrix(4,4)).
  2. We gain NumPy’s powerful broadcasting and slicing syntax for small arrays (geometries, gradients, densities, etc).
  3. Vectorized linear algebra, trig functions, etc

A few notes on availability:
If you are using the conda binary, we will now simply include NumPy in the package requirements so that this change is transparent to all conda users.

If you are compiling Psi4, common package managers like conda, brew, port, apt-get, yum, etc have NumPy binary options.

The final option is to compile NumPy yourself (not particularly recommended). For 99% of users who choose this option will simply have to run the command “pip install numpy” or download the source and then type “python setup.py”.


Pandas:
We are also considering a Pandas dependence in the future to fully support Psi4’s database capabilities. This would be the extent of additional python dependencies for the foreseeable future. Pandas is obtainable in identical ways to NumPy.

1 Like

All of that sounds good to me !