У меня есть массив P, как показано ниже:
P
array([[ 0.49530662, 0.32619367, 0.54593724, -0.0224462 ],
[-0.10503237, 0.48607405, 0.28572714, 0.15175049],
[ 0.0286128 , -0.32407902, -0.56598029, -0.26743756],
[ 0.14353725, -0.35624814, 0.25655861, -0.09241335]])
и вектор y
:
y
array([0, 0, 1, 0], dtype=int16)
Я хочу изменить другую матрицу Z
с такой жеразмерность как P
, такая, что Z_ij = y_j
, когда Z_ij < 0
.
. В приведенном выше примере моя матрица Z должна быть
Z = array([[-, -, -, 0],
[0, -, -, -],
[-, 0, 1, 0],
[-, 0, -, 0]])
Где '-' указывает на оригинал Z
ценности.Я подумал об очень простой реализации, которая в основном перебирает каждую строку Z
и сравнивает значения столбцов с соответствующими Y
и P
.Знаете ли вы какой-нибудь лучший подход к питону / NumPy?