genfromtxt関数とNumpy関数の学習

  今日、genfromtxt関数に遭遇しました
  
  world_alcohol = numpy.genfromtxt( "world_alcohol.txt"、delimiter = "、"、dtype = str)
  
  genfromtxtとは何ですか?
  
  genfromtxt関数は配列テーブルデータを作成します
  
  genfromtxtは主に2つのループ操作を実行します。最初のループは、ファイルの各行を一連の文字列に変換します。2番目のループは、各文字列シーケンスを対応するデータ型に変換します。
  
  genfromtxtは欠損値を考慮することができますが、loadtxtのような他のより高速で単純な関数は欠損値を考慮することができません。
  
  使用する前に、対応するモジュール
  
  Python 3 import numpyをインポートして  、
  
  入力
  
genfromtxtの唯一の必須パラメーターがデータのソースであることを定義する必要があります。これは、ローカルまたはリモートファイルに対応する名前文字列、またはreadメソッドを持つファイルのようなオブジェクト(実際のファイルやStringIO.StringIOオブジェクトなど)にすることができます。パラメータがリモートファイルのURLの場合、後者は現在のディレクトリに自動的にダウンロードされます。入力ファイルはテキストファイルでもアーカイブでもかまいませんが、現在、この関数はgzipとbz2(bzip2)を認識します。アーカイブファイルのタイプは、ファイル拡張子をチェックすることです。ファイル名が「.gz」で終わる場合は、gzipアーカイブ、「bz2」で終わる場合は、bzip2アーカイブです。
  
  行を列に
  
  分割しますgenfromtxt空白以外の各行を文字に分割します文字列シーケンス。空行またはコメント行はスキップされます。
  
  分割文字は1文字に限定されず、どの文字列でも可能です。
  
  固定幅ファイルを分割します。列の幅は、指定された文字数として定義されます。この場合、セパレーターを整数(すべての列のサイズが同じ場合)または整数のシーケンス(列のサイズが異なる場合)に設定する必要があります。
  
  data = "123456789 \ n 4 7 9 \ n 4567 9"
  
  np.genfromtxt(StringIO(data)、delimiter =(4、3、2))
  
  array([[1234.、567.、89.]、[4。 、7.、9.]、[4.、567.、9.]])
  
  genfromtxtパラメータの詳細
  
  autostripパラメータ
  
  行が文字列シーケンスに分割されている場合、シーケンス内の各アイテムの前後に余分なスペースがまだ存在する場合は、変更できますスペースを削除するには、autostripパラメータをtrueに設定します。
  
  コメントパラメータ
  
  コメントパラメータは、コメントの開始を示す文字列です。デフォルトは「#」であり、コメントマークは変換プロセス中のどこにでも発生する可能性があります。コメントマークの後に表示される文字はすべて無視されます。
  
  注:この動作には1つの例外があります。オプションのパラメーター名= Trueの場合、最初の行はコメント行が名前と見なされることを確認します。  ファイル
  
  のskip_headerおよびskip_footerパラメータ
  
ヘッダーは、ファイルの処理を妨げます。この場合、skip_headerオプションパラメータを使用する必要があります。このパラメーターの値は整数である必要があり、ファイルの先頭にある対応する行数をスキップしてから、他の操作を実行します。同様に、skip_footer属性とnの値を使用して、ファイルの最後のn行をスキップできます。デフォルト値は0です
  
  。usercolsパラメータ
  
  場合によっては、データの特定の列のみに関心があることがあります。usecolsを使用して、目的の列を選択できます。このパラメーターは、整数または整数のシーケンスをインデックスとして受け入れます。慣例により、最初の列のインデックス0、-1は最後の列に対応することを覚えておいてください。列に名前がある場合は、usecolsパラメータをその名前、または列名を含む文字列シーケンスまたはコンマ区切りの文字列に設定することもできます。
  
  dtypeパラメータ
  
  ファイルから読み取る文字列シーケンスは、他のタイプのデータに変換するときに設定する必要があります。デフォルトはフロート型です。
  
  1. dtype = floatなどの単一の型。
  
  2. dtype =(int、float、float)などのシーケンスタイプ
  
  3.コンマで区切られた文字列(dtype = "i4、f8、| S3"など)
  
  4.辞書に2つのキー「名前」と'formats'
  
  5.タプルのシーケンス。例:dtype = [( 'A'、int)、( 'B'、float)]
  
  6.既存のnumpy.dtypeオブジェクト
  
  7.特別な値None、これにはこの場合、各列のタイプは独自のデータによって決定されます。パラメータをNoneに設定すると効率が低下します。ブール値で始まるため、整数、浮動小数点、複素数は、条件が満たされるまで文字列で終わります。
  
  namesパラメーター
  
  は、namesパラメーターをtrueに設定して最初の行をスキップできます。プログラムは、最初の行がコメント化されている場合でも、最初の行を列名として使用します。または、dtypeを使用して名前を設定するか、名前を書き換えることができます。デフォルト名はnoneです。names= noneの場合、numpyはいくつかの標準デフォルト値「f%i」を生成します。defaultfmtを使用してデフォルトの形式を変更できます。
  
  data = StringIO( "1 2 3 \ n 4 5 6"
  
  ndtype = [( 'a'、int)、( 'b'、float)、( 'c'、int)]
  
  names = ["A"、 "B"、 "C"]
  
  np.genfromtxt(data、names =名前、dtype = ndtype)配列([(1、2.0、3)、(
  
  4、5.0、6 )]、dtype = [( 'A'、 '<i8')、( 'B'、 '<f8') 、( 'C'、 '<i8')])
  
  注:defaultfmtは
  
  名前
  
  Numpy配列の検証にのみ使用され、構造化dtypeもrecarrayと見なすことができ、フィールドをaとして使用できることを覚えておく必要があります。プロパティへのアクセス。このため、フィールド名にスペースや無効な文字、または標準の属性(サイズや形状など)に準拠していない名前が含まれていないことを確認する必要がある場合があります。genfromtxtは3つのオプションパラメータを受け入れ、より適切に制御するための名前を提供します。deletechars:
  
  削除する必要がある名前のすべてのコネクタ。デフォルトでは、無効な文字〜!@#$%^&*()-+〜= |]}({;:/?>、<。
  
  Excludelist:return、file、印刷...入力した名前の1
  
  つがこのリストに表示される場合、下線( "_")が付きますcase_sensitive:名前で大文字と小文字を区別するかどうか(case_sensitive = True)、
  

  
  日付形式MM / DD / YYYYを日時オブジェクトに変換する場合、または文字列xx%を0〜1の浮動小数点数に正しく変換する場合は、convertersパラメーターを使用して変換関数を定義する必要があります。
  
  このパラメーターの値は通常、キーとしての列インデックスまたは列名と値としての変換関数を持つディクショナリーです。これらの変換関数は、実際の関数またはラムダ関数にすることができます。いずれの場合も、入力と出力として1つの文字列と、取得したい1つの要素タイプのみを受け入れる必要があります。  デフォルトでは、
  
  missing_values
  
はスペースを使用して欠落を示しますが、「N / A」や「???」などのより複雑な文字を使用して欠落を示すことができます。missing_valuesは、3つのタイプの値を受け入れます。
  
  文字列またはコンマ区切りの文字列:この文字列は、欠落データのすべての列
  
  をマークする文字列シーケンスとして使用されます。この場合、各アイテムは、関連付けられています。
  
  辞書:辞書の値は文字列または文字列のシーケンスです。対応するキーは、列インデックス(整数)または列名(文字列)です。さらに、key = noneは、すべての列に適用されるデフォルト値を定義します。
  
  Filling_valuesパラメータ
  
  欠損値がある場合、システムはデフォルト値を入力します。
  
  期待されるタイプデフォルト
  
  bool False
  
  int -1
  
  float np.nan
  
  複合np.nan + 0j
  
  文字列 '???'
  
  パラメータの値をmissing_valuesパラメータのように設定することもできます。Filling_valuesは、3つのタイプの値を受け入れます:-
  
  単一の値:すべての列のデフォルト値
  
  -値のシーケンス:各項目は、対応する列に順番に対応しています。
  
  -辞書:辞書の値は別のオブジェクトです。対応するキーは、列インデックス(整数)または列名(文字列)です。さらに、key = noneは、すべての列に適用されるデフォルト値を定義します。
  
  Usermaskパラメータ
  
  ブールマスクを作成して欠落データの発生を追跡することもできます。データが欠落している場合はtrueを返し、それ以外の場合はfalseを返します。これを行うには、オプションのパラメーターusemask = Trueを設定する必要があります(デフォルトはFalse)。結果はMaskedArray配列になります。
  
  genfromtxtに加えて、numpy.lib.ioモジュールはgenfromtxtからいくつかの便利な関数を提供します。これらの関数はすべて同じように機能しますが、デフォルト値が異なります。
  
  ndfromtxt
  
  は通常、usemask = Falseを設定します。出力は通常、標準のnumpy.ndarrayです
  
  。mafromtxt
  
  は通常、usemask = Trueを設定します。出力はMaskedArrayです
  
  。rectxt
  
  は標準のnumpy.recarray(usemask = Falseの場合)またはMaskedRecords配列(usemaske = Trueの場合)を返しますデフォルトのdtypeはdtype = Noneです。これは、各列のタイプが自動的に決定されることを意味します。
  
  recfromcsvはrecfromtxtに
  
  似ていますが、区切り文字= "、"です
  
  。Numpy関数学習--genfromtxt関数

おすすめ

転載: www.cnblogs.com/caihai250/p/12709939.html