ASCII表 (astropy.io.ascii

序言:序言

astropy.io.ascii ASCIIデータテーブル形式を内蔵した各種ASCIIデータテーブルフォーマットの読み出しおよび書き込み方法の提供 拡張モジュールリーダクラス それがそうです。読者は柔軟性の低いC言語ベースのエンジンを用いて読み書きを行うことを選択して性能を向上させることができるにもかかわらず,使用の柔軟性と利便性に重点を置いている.

以下にいくつかの利用可能なASCIIフォーマットを示す. Supported formats 完全リストが含まれています。

The strength of astropy.io.ascii is the support for astronomy-specific formats (often with metadata) and specialized data types such as SkyCoord, Time, and Quantity. For reading or writing large data tables in a generic format such as CSV, using the Table - Pandas interface is a recommended option to consider.

注釈

使用中の機能を奨励することもできます astropy.io.ascii 通過する. Data Tables 小包です。参照してください 統一ファイル読み書きインタフェース もっと細かいことを知っています。

スタート

表を読む

一般的なASCII表の多くはご利用いただけます read() 機能します。もしあなたが名前を持っているとしましょう sources.dat 内容は以下のとおりである.

obsid redshift  X      Y     object
3102  0.32      4167  4085   Q1250+568-A
877   0.22      4378  3892   "Source 82"

この表は、以下のように読むことができる。

>>> from astropy.io import ascii
>>> data = ascii.read("sources.dat")  
>>> print(data)                       
obsid redshift  X    Y      object
----- -------- ---- ---- -----------
 3102     0.32 4167 4085 Q1250+568-A
  877     0.22 4378 3892   Source 82

最初のパラメータは read() 関数は、ファイル名、テーブルの文字列表現形式、または表行リストであってもよい。返り値. (data 本例では)は1つである Table 物体です。

デフォルトの場合、 read() やってみます guess the table format 全てを試してみることで supported formats それがそうです。

警告

大規模なファイルの場合、リーダは、1つのフォーマットが成功するまで、各許容フォーマットを使用してファイルを解析しようと試みるので、ファイルフォーマットの推測は通常遅い。大きな書類については、推測を無効にすることをお勧めします guess=False それがそうです。

もし推測フォーマットが機能しなければ、異常な表をフォーマットするように、あなたは与える必要があるかもしれません。 astropy.io.ascii フォーマットに関する他の提示。

実例.

例外をフォーマットするフォームについては、フォーマットに関する他のプロンプトを提供してください:

>>> lines = ['objID                   & osrcid            & xsrcid       ',
...          '----------------------- & ----------------- & -------------',
...          '              277955213 & S000.7044P00.7513 & XS04861B6_005',
...          '              889974380 & S002.9051P14.7003 & XS03957B7_004']
>>> data = ascii.read(lines, data_start=2, delimiter='&')
>>> print(data)
  objID         osrcid          xsrcid
--------- ----------------- -------------
277955213 S000.7044P00.7513 XS04861B6_005
889974380 S002.9051P14.7003 XS03957B7_004

ファイルのフォーマットが既知である場合(例えば、固定幅のテーブルまたはIPACテーブルである場合)、 format パラメータの1つの値 supported formats それがそうです。例えば:

>>> data = ascii.read(lines, format='fixed_width_two_line', delimiter='&')

CSVのようなより簡単なフォーマットでは read() 自動試行をCython/C解析エンジンを用いて読み取りますが、これは通常のPythonよりもはるかに速いです(参照 FAST ASCII I/O )である。FASTエンジンが故障したら read() デフォルトではPythonリーダーに依存します。この論点は fast_reader この行為を制御するために指定することができる.例えば、FASTエンジンを無効にする:

>>> data = ascii.read(lines, format='csv', fast_reader=False)

非常に大きなテーブルの読み取りに関する情報は、ご参照ください 大表をブロックして読み取る または使用する pandas (以下の注釈を参照)。

注釈

純粋なPythonリーダーは、Unicode文字を含むテーブルの読み取りをサポートし、方法は指定されています encoding パラメータです。高速なC言語リーダはUnicodeをサポートしていません。Unicodeを含む大型データファイルについては、使用をお勧めします pandas 変換しています Table 通過する. Table - Pandas interface それがそうです。

用紙を書く

♪the write() 関数は、フォーマットされたASCIIテーブルにデータテーブルを書き込む方法を提供する。

実例.

以下のコードは、フォームを簡単なスペース区切りファイルとして書きます。

>>> import numpy as np
>>> from astropy.table import Table, Column, MaskedColumn
>>> x = np.array([1, 2, 3])
>>> y = x ** 2
>>> data = Table([x, y], names=['x', 'y'])
>>> ascii.write(data, 'values.dat', overwrite=True)

♪the values.dat そして、ファイルには、:

x y
1 1
2 4
3 9

サポートされているほとんどの入力リーダフォーマット astropy.io.ascii 読み出しについては,書き込みもサポートしている.これはフォーマットを作成するために大きな柔軟性を提供する。以下の例では、データをLaTeXテーブルとして書き込み、出力を送信するオプションを使用する sys.stdout ファイルではありません:

>>> import sys
>>> ascii.write(data, sys.stdout, format='latex')
\begin{table}
\begin{tabular}{cc}
x & y \\
1 & 1 \\
2 & 4 \\
3 & 9 \\
\end{tabular}
\end{table}

簡単なフォーマットを作成するためのより高速なCythonエンジンもあり、デフォルトでこれらのフォーマットのエンジンを有効にします(参照 FAST ASCII I/O )である。このエンジンを無効にするには、パラメータを使用してください fast_writer **

>>> ascii.write(data, 'values.csv', format='csv', fast_writer=False)  

最後に、ユーザはデータを書き込むことができます ECSVフォーマット これは、列データタイプおよびユニットのようなテーブルメタデータを保存することを可能にする。このようにして、データテーブル(マスクエントリを有するデータテーブルを含む)は、情報を失うことなく、ASCIIフォーマットで格納および読み取りすることができる。

>>> t = Table(masked=True)
>>> t['x'] = MaskedColumn([1.0, 2.0], unit='m', dtype='float32')
>>> t['x'][1] = np.ma.masked
>>> t['y'] = MaskedColumn([False, True], dtype='bool')
>>> import io
>>> fh = io.StringIO()
>>> t.write(fh, format='ascii.ecsv')  
>>> table_string = fh.getvalue()      
>>> print(table_string)               
# %ECSV 0.9
# ---
# datatype:
# - {name: x, unit: m, datatype: float32}
# - {name: y, datatype: bool}
x y
1.0 False
"" True
>>> Table.read(table_string, format='ascii')  
<Table masked=True length=2>
   x      y
   m
float32  bool
------- -----
    1.0 False
     --  True

注釈

ほとんどのサポートされているフォーマットについては、シールドテーブルに書き込み、その後、シールドテーブルエントリに関する情報を失うことなく読み返すことができる。これは、空文字列エントリを使用してマスク(欠落)値を示すことによって達成される。ご参照ください 誤りまたは不足値 部分的にもっと情報を知っています。

サポートのフォーマット

サポートされている完全リスト format 以下にASCIIテーブルの値と対応するフォーマットタイプを与える.♪the Write 列は、どのフォーマットが書き込み機能をサポートしているかを示します。 Fast 列は、FAST Cython/Cエンジンと互換性のあるどのフォーマットが読み書きを行うかを示します。

格式.

書く.

素早い

説明する.

aastex

はい、そうです。

AASTex :AASジャーナル用AASTeX豪華フォーム

basic

はい、そうです。

はい、そうです。

Basic :カスタム区切り付き基本表

cds

Cds :CDSフォーマット表

commented_header

はい、そうです。

はい、そうです。

CommentedHeader :注釈行中の列名

csv

はい、そうです。

はい、そうです。

Csv :コンマ区切り値付き基本表

daophot

Daophot :iraf DAOphotフォーマット表

ecsv

はい、そうです。

Ecsv :強化されたCSVフォーマット

fixed_width

はい、そうです。

FixedWidth :固定幅

fixed_width_no_header

はい、そうです。

FixedWidthNoHeader :幅を固定し、眉を持たない

fixed_width_two_line

はい、そうです。

FixedWidthTwoLine :幅を固定し、2ページ目の眉行

html

はい、そうです。

HTML :HTMLフォーマット表

ipac

はい、そうです。

Ipac :IPACフォーマット表

latex

はい、そうです。

Latex :ラテックステーブル

no_header

はい、そうです。

はい、そうです。

NoHeader :裏表のない基本表

rdb

はい、そうです。

はい、そうです。

Rdb :タブ,タイトル行区切りをタイプで定義する

rst

はい、そうです。

RST :reStructiredTextシンプルなフォーマット表

sextractor

SExtractor :SExtractor格式表

tab

はい、そうです。

はい、そうです。

Tab :タブ区切り値付き基本表

注意

ECSVのご利用がおすすめです

表データ,タイプ,メタデータを完全に複製するように表をASCIIに書き込む(すなわち,表は“往復”する),利用を強く提案する. ECSVフォーマット それがそうです。これは簡単なスペース区切り形式で実際のデータに書き込まれます( basic フォーマット)は、どのASCIIテーブルリーダも解析可能であるが、ソース列を完全に再構成することを可能にする注釈ブロックにおいて符号化されたメタデータも含む。これには支援も含まれています 混合柱 (例えば、 SkyCoord あるいは…。 Time )と 遮蔽柱. それがそうです。

Vbl.使用 astropy.io.ascii

使用の詳細情報 astropy.io.ascii 以下の各節で関連情報を提供する.

表を読む

用紙を書く

高速ASCIIエンジン

基底類元素

拡張モジュールリーダクラス

性能提示

デフォルトでは、ファイルの読み取りを試みるとき、リーダは、多くの異なるリーダを使用してファイルを読み取ることを試みることに関連するフォーマットを推測する。大きなテーブルを処理する際により良い性能を得るために、フォーマットおよび任意のオプションを明示的に指定し、推測をオフにすることを提案する。

例を引く

1行のタイトルと列名を持つ簡単なCSVファイルを読み出している場合は、以下の操作を実行してください。

read('example.csv', format='basic', delimiter=',', guess=False)  # doctest: +SKIP

少なくとも1桁速い:

read('example.csv')  # doctest: +SKIP

参照/API

Asterpy.io.asciiバッグ

拡張可能なASCIIフォームリーダ及びライタを提供する。

機能

convert_numpy \(数字_タイプ)

リストをNumpy配列に変換する関数と、変換器関数によって生成されるタイプとを含むタプルに戻る。

get_read_trace \()

前回の呼び出しの試みに戻ってフォーマットのバックトラックを読み込む. read その中で推測を有効にした。

get_reader \([Reader, Inputter, Outputter] )

初期化テーブルリーダは,汎用カスタマイズを許可する.

get_writer \([Writer, fast_writer] )

初期化テーブルライタは,汎用カスタマイズを許可する.

read \(表[, guess] )

入力を読む table そしてテーブルを返します。

set_guess \(推測)

設ける guess Read()のパラメータ

write \(表[, output, format, Writer, ...] )

書き込み入力 table 至る filename それがそうです。

クラス

AASTex \(** Kwargs)

エーエーSTeX格式表です。

AllType \()

他のすべてのデータタイプのサブクラス。

BaseData \()

基本表データリーダ。

BaseHeader \()

基表表頭リーダー

BaseInputter \()

表入力から行を取得し,行リストを返す.

BaseOutputter \()

表を列名をキーワードとする列対象の辞書として出力する.

BaseReader \()

クラスの新しいインスタンスであって、このクラスは、指定されたヘッダ、データ、入力器、および出力器インスタンスを使用してASCIIテーブルを読み出しおよび書き込む方法を提供する。

BaseSplitter \()

PythonのSplit方法を用いて動作を行う基礎分解器。

Basic \()

文字で区切られたテーブルは、上部に1つのタイトル行しかありません。

BasicData \()

基本表データリーダ

BasicHeader \()

基本表頭リーダー

Cds \([readme] )

CDSフォーマット表。

Column \(名前)

表の列です。

CommentedHeader \()

文字で区切られた表は、列名が注釈行に位置しています。

ContinuationLinesInputter \()

行が以下の文字で終わる入力器 continuation_char 後続行に接続する.例::.

Csv \()

CSV(コンマ区切り値)表。

Daophot \()

DAOphotフォーマット表です。

DefaultSplitter \()

Python CSVを使用して文字列を列のデフォルトクラスに分割します。

Ecsv \()

ECSV(拡張文字区切り値)フォーマットテーブルです。

FastBasic \([default_kwargs] )

このような目的は一般的なものと Basic アセンブラは,底層Cコードのラッパとして機能するため,はるかに高速である.

FastCommentedHeader \(** Kwargs)

もっと速いバージョンの CommentedHeader Readerは,インタプリタ行で列名を検索する.

FastCsv \(** Kwargs)

より速い通常バージョン Csv 最適化されたC解析エンジンのコンパイラを用いた.

FastNoHeader \(** Kwargs)

このクラスはFAST Cエンジンを用いてヘッダラインのないテーブルを読み込む.

FastRdb \(** Kwargs)

もっと速いバージョンの Rdb 読者。

FastTab \(** Kwargs)

より速い通常バージョン Tab 最適化されたC解析エンジンのリーダを用いる.

FixedWidth \([col_starts, col_ends, ...] )

固定幅のテーブルは,列名と位置を定義する単一の見出し行を持つ.

FixedWidthData \()

基本表データリーダ。

FixedWidthHeader \()

固定幅表ヘッドリーダー。

FixedWidthNoHeader \([col_starts, col_ends, ...] )

見出し行の固定幅テーブルはない.

FixedWidthSplitter \()

各線の固定始点と終点位置に基づいて線を分割する col はい。 self.cols それがそうです。

FixedWidthTwoLine \([position_line, ...] )

2つのタイトル行を有する固定幅テーブル。

FloatType \()

浮動小数点データを記述する。

HTML \([htmldict] )

HTMLフォーマット表です。

InconsistentTableError \

入力表が何らかの点で一致しないことを示す.

IntType \()

整数データを記述する。

Ipac \([definition, DBMS] )

アイピーシー格式です。

Latex \([ignore_latex_commands, latexdict, ...] )

LaTeX格式表。

NoHeader \()

文字で区切られた表には、見出し行はありません。

NoType \()

超類です StrType そして NumType 授業を受けます。

NumType \()

指示列はデジタルデータからなる.

ParameterError \

リーダに伝達のパラメータを処理できないように指示する.

QDP \([table_id, names, err_specs, sep] )

素早くきれいなグラフです。

RST \()

ReStructiredText単純フォーマット表.

Rdb \()

タブで区切られたファイルは,数字(N)または文字列(S)データの列定義行を指定した後に1行加算する.

SExtractor \()

SExtractor格式表。

StrType \()

指示列はテキストデータからなる.

Tab \()

表札で区切られた表。

TableOutputter \()

表をAsterpy.table.Tableオブジェクトとして出力する.

WhitespaceSplitter \()

クラス継承関係図

Inheritance diagram of astropy.io.ascii.latex.AASTex, astropy.io.ascii.core.AllType, astropy.io.ascii.core.BaseData, astropy.io.ascii.core.BaseHeader, astropy.io.ascii.core.BaseInputter, astropy.io.ascii.core.BaseOutputter, astropy.io.ascii.core.BaseReader, astropy.io.ascii.core.BaseSplitter, astropy.io.ascii.basic.Basic, astropy.io.ascii.basic.BasicData, astropy.io.ascii.basic.BasicHeader, astropy.io.ascii.cds.Cds, astropy.io.ascii.core.Column, astropy.io.ascii.basic.CommentedHeader, astropy.io.ascii.core.ContinuationLinesInputter, astropy.io.ascii.basic.Csv, astropy.io.ascii.daophot.Daophot, astropy.io.ascii.core.DefaultSplitter, astropy.io.ascii.ecsv.Ecsv, astropy.io.ascii.fastbasic.FastBasic, astropy.io.ascii.fastbasic.FastCommentedHeader, astropy.io.ascii.fastbasic.FastCsv, astropy.io.ascii.fastbasic.FastNoHeader, astropy.io.ascii.fastbasic.FastRdb, astropy.io.ascii.fastbasic.FastTab, astropy.io.ascii.fixedwidth.FixedWidth, astropy.io.ascii.fixedwidth.FixedWidthData, astropy.io.ascii.fixedwidth.FixedWidthHeader, astropy.io.ascii.fixedwidth.FixedWidthNoHeader, astropy.io.ascii.fixedwidth.FixedWidthSplitter, astropy.io.ascii.fixedwidth.FixedWidthTwoLine, astropy.io.ascii.core.FloatType, astropy.io.ascii.html.HTML, astropy.io.ascii.core.InconsistentTableError, astropy.io.ascii.core.IntType, astropy.io.ascii.ipac.Ipac, astropy.io.ascii.latex.Latex, astropy.io.ascii.basic.NoHeader, astropy.io.ascii.core.NoType, astropy.io.ascii.core.NumType, astropy.io.ascii.core.ParameterError, astropy.io.ascii.qdp.QDP, astropy.io.ascii.rst.RST, astropy.io.ascii.basic.Rdb, astropy.io.ascii.sextractor.SExtractor, astropy.io.ascii.core.StrType, astropy.io.ascii.basic.Tab, astropy.io.ascii.core.TableOutputter, astropy.io.ascii.core.WhitespaceSplitter