floatタイプのみで構成されるcsvファイルを読み込もうとしています。
data = np.genfromtxt(self.file,dtype=float,delimiter=self.delimiter,names = True)
ただし、これはタプルの配列を返します。私の検索に基づくと、これは不均一な配列に対してのみタプルを返すはずです。numpy.genfromtxtは、2D配列ではなく、タプルのように見える配列を生成します。なぜですか?。を削除するとnames=True
、実際には2D配列が返されます。リンクにあるような名前の配列を返すことは可能ですか?
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)
名前付きの列を使用しながら、標準の2D配列を使用できるかどうかを尋ねているようです。そうではありません。(少なくとも、あなたが求めているように見えるという意味ではありません。)
「名前のある配列」は構造化された配列です。これはレコードの配列(実際にはタプルではありません)であり、それぞれに名前付きフィールドがあります。このように考えてください。名前は配列に付加されておらず、「タプル」(レコード)に付加されています。データが同種のタイプであるという事実は重要ではありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加