encontrar y eliminar de una matriz numpy más dimensional

Tengo dos arreglos numpy:

p_a_colors=np.array([[0,0,0],
                     [0,2,0],
                     [119,103,82],
                     [122,122,122],
                     [122,122,122],
                     [3,2,4]])

p_rem = np.array([[119,103,82],
                     [122,122,122]])

Quiero eliminar todas las columnas de p_a_colors que están en p_rem, así que obtengo:

p_r_colors=np.array([[0,0,0],
                    [0,2,0],
                    [3,2,4]])

Creo que algo debería funcionar como

p_r_colors= np.delete(p_a_colors, np.where(np.all(p_a_colors==p_rem, axis=0)),0)

pero simplemente no entiendo el eje o [:] correcto.

Yo sé eso

p_r_colors=copy.deepcopy(p_a_colors)
for i in range(len(p_rem)):
    p_r_colors= np.delete(p_r_colors, np.where(np.all(p_r_colors==p_rem[i], axis=-1)),0)

Funcionaría, pero estoy tratando de evitar los bucles (de Python), porque también quiero que el rendimiento sea el correcto.

Respuestas a la pregunta(3)

Su respuesta a la pregunta