[AstroPy] Constructing an astropy table with colnames and dtypes of existing table
Andrew Hearin
andrew.hearin at yale.edu
Wed Apr 29 14:45:24 EDT 2015
You beat me to the punch, Tom, I was going to suggest exactly this. Numpys built-in empty_like method is extremely convenient, and it would be great to have an analogous astropy table method.
On Apr 29, 2015, at 2:21 PM, Thomas Robitaille <thomas.robitaille at gmail.com> wrote:
> On 29 April 2015 at 19:19, Aldcroft, Thomas
> <aldcroft at head.cfa.harvard.edu> wrote:
>>
>>
>> On Wed, Apr 29, 2015 at 2:13 PM, Aldcroft, Thomas
>> <aldcroft at head.cfa.harvard.edu> wrote:
>>>
>>>
>>>
>>> On Wed, Apr 29, 2015 at 1:40 PM, Alexa Villaume <avillaum at ucsc.edu> wrote:
>>>>
>>>> Hi everybody,
>>>>
>>>> I’m trying to construct an astropy table using the exact same columns and
>>>> corresponding dtypes of an existing table. The documentation goes into using
>>>> existing columns but it wasn’t as clear to me on how to handle the data
>>>> types. For example, I have an existing table ‘irtf’ and I want to make a
>>>> table ‘irtf_hb’ if I do,
>>>>
>>>> irtf_hb = Table(names=irtf.colnames)
>>>>
>>>> the table is initialized with all the right column names but the dtypes
>>>> are all floats. However, I can’t do this,
>>>>
>>>> irtf_hb = Table(names=irtf.colnames, dtype=irtf.dtype)
>>>>
>>>> Because I get an error, “ValueError: dtype must be a list or None”. I
>>>> haven’t had any luck with trying to change the type of irtf.dtype or using
>>>> list comprehension to extract a list of dtypes.
>>>>
>>>> Is there a simple way to use the dtypes of an existing table to
>>>> initialize a new table?
>>>
>>>
>>> You should be able to do:
>>>
>>>>>> irtf_hb = Table(irtf[0:0])
>>>
>>> This is a slight hack, but it's pretty simple and should give you a
>>> zero-length table with all the original table properties. I tested on a
>>> simple case but haven't checked in detail.
>>
>>
>> BTW, "all the original table properties" includes all column and table meta
>> data (e.g. units), so this should be the preferred idiom.
>
> How about a new class method that does something like
> ``np.empty_like`` called ``Table.empty_like``?
>
> Cheers,
> Tom
>
>>
>> - Tom
>>
>>>
>>>
>>> In [3]: from astropy.table import Table
>>>
>>> In [4]: t = Table([[1]])
>>>
>>> In [5]: t2 = Table(t[0:0])
>>>
>>> In [6]: t2
>>> Out[6]:
>>> <Table masked=False length=0>
>>> col0
>>> int64
>>> -----
>>>
>>> In [7]:
>>>
>>> - Tom
>>>
>>>>
>>>>
>>>> Thank you,
>>>> Alexa
>>>> _______________________________________________
>>>> AstroPy mailing list
>>>> AstroPy at scipy.org
>>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.scipy.org_mailman_listinfo_astropy&d=AwIGaQ&c=-dg2m7zWuuDZ0MUcV7Sdqw&r=AHkQ8HPUDwzl0x62ybAnwN_OEebPRGDtcjUPBcnLYw4&m=tsHzQ6NpihEoX33pmnmiHF6nSNu86BozkIV4v_KCP6s&s=FRlFhyfQHtHEHMGpEAq6bnpkDKvPbatH7Q5WJ492XNU&e=
>>>
>>>
>>
>>
>> _______________________________________________
>> AstroPy mailing list
>> AstroPy at scipy.org
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.scipy.org_mailman_listinfo_astropy&d=AwIGaQ&c=-dg2m7zWuuDZ0MUcV7Sdqw&r=AHkQ8HPUDwzl0x62ybAnwN_OEebPRGDtcjUPBcnLYw4&m=tsHzQ6NpihEoX33pmnmiHF6nSNu86BozkIV4v_KCP6s&s=FRlFhyfQHtHEHMGpEAq6bnpkDKvPbatH7Q5WJ492XNU&e=
>>
> _______________________________________________
> AstroPy mailing list
> AstroPy at scipy.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.scipy.org_mailman_listinfo_astropy&d=AwIGaQ&c=-dg2m7zWuuDZ0MUcV7Sdqw&r=AHkQ8HPUDwzl0x62ybAnwN_OEebPRGDtcjUPBcnLYw4&m=tsHzQ6NpihEoX33pmnmiHF6nSNu86BozkIV4v_KCP6s&s=FRlFhyfQHtHEHMGpEAq6bnpkDKvPbatH7Q5WJ492XNU&e=
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/astropy/attachments/20150429/a7b41f97/attachment.html>
More information about the AstroPy
mailing list