2011-12-01 6 views
5

आप निम्नलिखित कोड खंडक्यों नकाबपोश सरणी के लिए भी numpy कोण समारोह वापसी मान करता महत्व देता

import numpy as np 
import numpy.ma as ma 

a = np.random.random(100) + 1j*np.random.random(100) 
mask = np.ones_like(a, dtype='bool') 
mask[0:9] = False 
a = ma.masked_array(a, mask) 
phase = np.angle(a) 

चरण सरणी नकाबपोश नहीं किए जाएंगे प्रयास करें। कोण फ़ंक्शन पूरे सरणी के लिए मान वापस कर देगा, यहां तक ​​कि मास्क किए गए मानों के लिए भी। क्या मैं यहाँ कुछ गलत कर रहा हूं या क्या यह वही होना चाहिए? यदि हां, तो क्यों?

उत्तर

3

नमी स्रोत पर एक त्वरित नज़र डाली, और यह अभी तक एक बग/लागू नहीं हो सकता है।

यह numpy.ma पृष्ठ पर "अनुपलब्ध सुविधा (प्रगति पर काम)" के रूप में सूचीबद्ध है, समस्या # 1: http://projects.scipy.org/numpy/wiki/MaskedArray

समस्या यह है कि np.angle, np.quantile स्रोतों में [np.]asarray पर कॉल करने वाले कई यूनरी फ़ंक्शंस, जो मास्क को स्ट्रिप करता है।

devs के रूप में मैं करने के लिए, अगर इन कार्यों np.asarray के बजाय ma.asarray इस्तेमाल किया वे काम करेंगे लिंक किए गए पृष्ठ में समझाते हैं, लेकिन वे :(नहीं है।

मुझे लगता है कि यह एक पैच अभी तक प्रस्तुत किया जाता है ?

एक अस्थायी समाधान के रूप में, np.angle मूल रूप से कहता है np.arctan2(a.imag,a.real), (वैकल्पिक 180/अनुकरणीय से गुणा डिग्री प्राप्त करने के लिए) ताकि आप उस इस्तेमाल कर सकते हैं।

संबंधित मुद्दे