如何解除numpy阵列的掩码?

2024-05-13 23:07:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我对如何揭开蒙面numpy阵列的面具有点困惑。我试图同时使用ma.getdata()和.data来完成这项工作,但两者都不起作用

我从一个名为GAIA的太空望远镜中获取数据,该望远镜在“天文”表格中吐出数据,可以转换成numpy Ndarray或Maskedarray(由它自己决定)。代码如下:

import astropy.units as u
from astropy.coordinates.sky_coordinate import SkyCoord
from astropy.units import Quantity
from astroquery.gaia import Gaia
import matplotlib.pyplot as plt
import numpy as np
import numpy.ma as ma
import math
from astroquery.gaia import Gaia

omegaCenPropagated = Gaia.launch_job_async("SELECT EPOCH_PROP(\
    ASTROMETRIC_PARAMETERS(ra, dec, parallax, pmra, pmdec, radial_velocity),2015.5,2000) \
    FROM gaiadr2.gaia_source \
    WHERE CONTAINS(POINT('ICRS',gaiadr2.gaia_source.ra,gaiadr2.gaia_source.dec),CIRCLE('ICRS',201.697,-47.47947222,.3))=1 \
    AND abs(pmra_error/pmra)<0.20 \
    AND abs(pmdec_error/pmdec)<0.20 \
    AND pmra BETWEEN -4.02 AND -3.21 \
    AND pmra IS NOT NULL AND abs(pmra)>0 \
    AND pmdec IS NOT NULL AND abs(pmdec)>0 \
    AND pmdec BETWEEN -6 AND -3.71;")

results = omegaCenPropagated.get_results()
masky = results.as_array()
print(ma.getdata(masky))

>>>[(masked_array(data=[201.35747106846168, -47.28848303227665,
                   -0.02630335368796253, -3.8819064907919567,
                   -5.029023407698611, -3.032918049269323e-06],
             mask=[False, False, False, False, False, False],
       fill_value=1e+20),)

...

 (masked_array(data=[201.83081659137244, -47.657480633878315,
                   0.4774726120269464, -3.8031607521848794,
                   -5.819234686494674, -3.631625948716173e-06],
             mask=[False, False, False, False, False, False],
       fill_value=1e+20),)]
>>>

Tags: andfromimportnumpyfalsedataasabs
1条回答
网友
1楼 · 发布于 2024-05-13 23:07:10

有什么问题吗?我可以从你的问题中复制粘贴:

In [186]: alist=[(np.ma.masked_array(data=[201.35747106846168, -47.28848303227665, 
     ...:                    -0.02630335368796253, -3.8819064907919567, 
     ...:                    -5.029023407698611, -3.032918049269323e-06], 
     ...:              mask=[False, False, False, False, False, False], 
     ...:        fill_value=1e+20),) 
     ...: , 
     ...:  (np.ma.masked_array(data=[201.83081659137244, -47.657480633878315, 
     ...:                    0.4774726120269464, -3.8031607521848794, 
     ...:                    -5.819234686494674, -3.631625948716173e-06], 
     ...:              mask=[False, False, False, False, False, False], 
     ...:        fill_value=1e+20),)]                                                                
In [187]: alist                                                                                      
Out[187]: 
[(masked_array(data=[201.35747106846168, -47.28848303227665,
                     -0.02630335368796253, -3.8819064907919567,
                     -5.029023407698611, -3.032918049269323e-06],
               mask=[False, False, False, False, False, False],
         fill_value=1e+20),),
 (masked_array(data=[201.83081659137244, -47.657480633878315,
                     0.4774726120269464, -3.8031607521848794,
                     -5.819234686494674, -3.631625948716173e-06],
               mask=[False, False, False, False, False, False],
         fill_value=1e+20),)]
In [188]: len(alist)                                                                                 
Out[188]: 2
In [189]: len(alist[0])                                                                              
Out[189]: 1

其中一个数组及其data

In [190]: alist[0][0]                                                                                
Out[190]: 
masked_array(data=[201.35747106846168, -47.28848303227665,
                   -0.02630335368796253, -3.8819064907919567,
                   -5.029023407698611, -3.032918049269323e-06],
             mask=[False, False, False, False, False, False],
       fill_value=1e+20)
In [191]: alist[0][0].data                                                                           
Out[191]: 
array([ 2.01357471e+02, -4.72884830e+01, -2.63033537e-02, -3.88190649e+00,
       -5.02902341e+00, -3.03291805e-06])

相关问题 更多 >