У меня есть разреженная (~ 15% ненулевая) матрица R, и я хочу выполнить векторизованную операцию над другой матрицей U, только для значений U, для которых R отлично от нуля, и в противном случае использовать ноль.
Если операция на U была дешевой, я мог бы рассчитать ее, а затем просто умножить на np.sign (R), который обычно равен нулю.Но некоторые значения вызывают ошибки, например деление на ошибки, потому что операция не имеет смысла применять к ним.
моя текущая попытка выглядит как
np.multiply(abs(np.sign(R)), 1 / (1 - data_using_R)
, которая векторизована, и этобыстрый, за исключением того, что он имеет ошибки, потому что операция не имеет смысла, когда R равно нулю.