4

float 型だけで構成される csv ファイルを読み込もうとしています。

data = np.genfromtxt(self.file,dtype=float,delimiter=self.delimiter,names = True)

しかし、これはタプルの配列を返します。私の検索に基づいて、これは非同種の配列に対してのみタプルを返すはずです。numpy.genfromtxt は、2D 配列ではなく、タプルのように見える配列を生成します。なぜですか? . を削除するnames=Trueと、実際には 2 次元配列が返されます。リンクにある名前の配列を返すことは可能ですか?

csv からの行:

0 _id|1 age|2 unkown|3 male|4 female|5 match-start|6 score
8645632250|7744|0|1|0|1|10

(他にもコラムがあります。最初の 6 つだけを書きました。)

列の名前をより適切にするために、このコードも使用しました。

def obtain_data(self):
with open(self.file, 'r') as infile:
  first_line = infile.readline()
  labels = first_line.split('|')
  labels = list(map(trunc_before,labels))
  data = np.genfromtxt(self.file,dtype=float,delimiter=self.delimiter,names = labels,skip_header=1)
  return data,  np.asarray(labels)
4

1 に答える 1

5

名前付きの列を持ちながら、標準の 2 次元配列を使用できるかどうかを尋ねているようです。そうではありません。(少なくとも、あなたが求めているような意味ではありません。)

「名前付き配列」は構造化配列です。これはレコードの配列(実際にはタプルではありません) であり、それぞれに名前付きフィールドがあります。このように考えてください: 名前は配列に添付されているのではなく、「タプル」、つまりレコードに添付されています。データが同種の型であるという事実は重要ではありません。

于 2013-09-04T11:57:00.117 に答える