Manipulating particles in python

I’m trying to work with particle.location, for a Hair particle system. When accessing the particle locations through the Python API…

        for p in particles:
            loc = Matrix.Translation(p.location)

… I’m noticing that the particle locations don’t seem to match what I’m seeing on screen. In this example, where I’d expect every particle’s location to be within +/- 3 from the origin, I get p.location[0]=6.400... and p.prev_location[0]=5.600..., despite the fact that this model isn’t animated, and playing the timeline doesn’t move anything.

Any idea why that would be? I’ve disabled Hair Dynamics and Field Weights, but no luck. I’d just like to access the original locations as shown on screen. This is Blender 2.81 if that’s relevant.