Pythonで機械学習などのプログラミングをするときには、まずはデータセットの用意が必要で、csvファイルで用意することも多いと思います。
csvファイルの読み込みには、numpyのloadtxt関数を使うと便利だと思います。今回は、loadtxtのパラメータ設定の中から必要最低限覚えておくと便利だと思ったものをピックアップしてご紹介します。

スポンサーリンク

loadtxt関数でdelimiterに","を設定してcsvファイルを読み込む

データがfloat型で、1行目からデータが開始するという前提であれば、delimiterに","を設定してdtypeをfloat型に設定すればOKです。
下記のようにシンプルに書けます。

data = np.loadtxt("in.csv", delimiter = ",", dtype = float)

csvファイルを読み込むPythonのサンプルコード

Pythonのサンプルコードになります。
例えば、in.csvには、カンマ区切りで数値が並んでいます。

 $ cat in.csv 
1,1.4
2,1.5
3,4.7

numpyのモジュールをimportして、loadtxt関数で下記のように書いてin.csvを読み込みます。
delimiterは","の設定、dtypeはfloat型に設定しています。
読み込んだ後に、読み込んだデータをprint出力しています。
 $ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np

npArray = np.loadtxt("in.csv", delimiter = ",", dtype = float)
print (npArray) 

実行すると下記のように、npArrayにcsvファイルのデータが格納されているのが確認できます。
 $ ./sample.py 
[[ 1.   1.4]
 [ 2.   1.5]
 [ 3.   4.7]]

スポンサーリンク

パラメータusecolsで読み込む列を指定

パラメータusecolsに読み込む列を指定することができます。

例えば、下記のようにcsv形式でin.txtがあったとします。

 $ cat in.txt 
0,1,2,3
4,5,6,7
8,9,10,11

下記がサンプルコードになります。
 $ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np

#1列目を読み込む
print("1列目を読み込む")
npArray = np.loadtxt("in.txt", delimiter = ",", usecols = (1))
print (npArray)

print("2列目と3列目を読み込む")
npArray = np.loadtxt("in.txt", delimiter = ",", usecols = (2,3))
print (npArray) 

下記が実行結果になります。
 $ ./sample.py 
1列目を読み込む
[ 1.  5.  9.]
2列目と3列目を読み込む
[[  2.   3.]
 [  6.   7.]
 [ 10.  11.]]
 

savetxtで、numpy配列をcsv形式でファイル出力する方法

savetxtでnumpy配列をファイル出力することができます。
下記がサンプルコードになります。csv形式の出力なのでdelimiter = ","を指定しています。

  $ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np

data = np.array(
		[[0,1,2],
		 [3,4,5],
		 [6,7,8]])

print("配列dataをcsv形式でout.txtに出力")
npArray = np.savetxt("out.txt", data, delimiter = ",", fmt = "%d")

下記が実行結果になります。
out.txtには、csv形式でnumpy配列のデータが書き込まれているのが確認できます。
 $ ./sample.py 
配列dataをcsv形式でout.txtに出力
 $ cat out.txt 
0,1,2
3,4,5
6,7,8

スポンサーリンク