को संरक्षित करने के लिए, मैं मूल्य के संकेत को संरक्षित करते समय (और ऋणात्मक जटिल संख्याओं को वापस नहीं लौटाते समय), प्रत्येक हस्ताक्षर के वर्ग रूट को लेना चाहता हूं - एक हस्ताक्षरित वर्गमूल।numpy सरणी में सभी मानों का स्क्वायर रूट,
नीचे दिया गया कोड वांछित कार्यक्षमता w/सूचियों को प्रदर्शित करता है, लेकिन numpy के अनुकूलित सरणी manpulating superpowers का लाभ नहीं ले रहा है।
def signed_sqrt(list):
new_list = []
for v in arr:
sign = 1
if v < 0:
sign = -1
sqrt = cmath.sqrt(abs(v))
new_v = sqrt * sign
new_list.append(new_v)
list = [1., 81., -7., 4., -16.]
list = signed_sqrt(list)
# [1., 9., -2.6457, 2. -4.]
कुछ संदर्भों के लिए, मैं [हजारों] छवि तुलनाओं के लिए हेलिंगर कर्नेल की गणना कर रहा हूं।
numpy के साथ ऐसा करने के लिए कोई आसान तरीका? धन्यवाद।