numpy - matriz várias matrizes 3x3 e 100x100x3?

Eu tenho o seguinte:

import numpy as np

XYZ_to_sRGB_mat_D50 = np.asarray([
    [3.1338561, -1.6168667, -0.4906146],
    [-0.9787684, 1.9161415, 0.0334540],
    [0.0719453, -0.2289914, 1.4052427],
])

XYZ_1 = np.asarray([0.25, 0.4, 0.1])
XYZ_2 = np.random.rand(100,100,3)

np.matmul(XYZ_to_sRGB_mat_D50, XYZ_1) # valid operation
np.matmul(XYZ_to_sRGB_mat_D50, XYZ_2) # makes no sense mathematically

Como executo a mesma operação no XYZ_2 que eu faria no XYZ_2? De alguma forma, reformulo a matriz primeiro?

questionAnswers(2)

yourAnswerToTheQuestion