I'm not a NumPy or SciPy core dev and I haven't seen any definitive decision, but I'll cite @njsmith in PEP 465 (#4351):

> The result is a strong consensus among both numpy developers and developers of downstream packages that `numpy.matrix` should essentially never be used

which I wholeheartedly second. Arrays should be preferred because they are more flexible, and when arrays are used, using `matrix` as well can only cause confusion. (E.g., after working with NumPy for several years and contributing quite a few patches, I still have no idea what `A * B` does when one of `A, B` is an array and the other a matrix.)