Мне нужно вычислить sqrt большой матрицы с положительными и отрицательными числами. Проблема в том, что sqrt чувствителен к подписи. Итак, я использую следующий код.
neg=numpy.argwhere(temp<0)
temp=numpy.abs(temp)
temp=numpy.sqrt(temp)
temp[neg]=-temp[neg]
В этом коде сначала я сохраняю местоположения отрицательных значений, а затем вычисляю квадратный корень после преобразования в положительные, а затем добавляю к ним отрицательный знак. Проблема в том, что в первом операторе возникает ошибка памяти.
Есть ли альтернативная память и эффективный с вычислительной точки зрения метод для достижения той же задачи. Размер матрицы порядка O(10^5)