0
csvファイルからデータを読み取ろうとしています。 7つの列があります。列インデックス付き5は文字列型で、列の残りは浮動小数点型です。浮動体と文字列を適切な形式で読み取る
フロートデータを読み込むために次のコマンドを実行すると、出力は適切な形式になります。その後、
data = np.loadtxt('data.csv', delimiter=',', usecols= (0,1,2,3,4,6))
print "\ndata=\n",data
出力は(500L、6L)の形状に
data=
[[ 3.00000000e+00 9.46000000e+01 1.80180000e+02 3.28900000e+01
6.80685824e+00 3.70000000e-01]
...,
[ 3.00000000e+00 1.33200000e+02 2.51460000e+02 2.01600000e+01
5.77236048e+00 -2.70000000e-01]]
ある
しかし、私は、私は、次の使用文字列型である列番号5を含むすべての列を読み取ろうコード:
datastr = np.loadtxt('data.csv', delimiter=',',dtype={'names': ('c1','c2','c3','c4','c5','c6','c7'),
'formats':('f4','f4','f4','f4','f4','S10','f4')})
print "\ndatastr=\n",datastr
今、出力が
です(500L)の形状に
datastr=
[ (3., 94.59999847, 180.17999268, 32.88999939, 6.80685806, 'Large', 0.37 ) ... (3., 133.19999695, 251.46000671, 20.15999985, 5.77236032, 'Small', -0.27000001)]
しかし、私はすべてのフロートの例では、私は(500L、6L)の形状を持っていただけのよう(500L、7L)にこのdatastr形状を取得する必要があります
どうすればいいですか?
おかげ
その 'datastr'の' dtype'を見てください。 7つのフィールドを持つ1次元構造化配列を作成しました。これは、浮動小数点数と文字列 '列'の組み合わせを保持できる唯一の方法です。 'datastr ['c3']'という名前でフィールドにアクセスします。そのミックスが気に入らない場合は、ファイルを2回読み込み、1回は6つの浮動列を取得し、もう1回は文字列1を読み込むことを検討してください。あなたは2つの配列で同じデータを取得します。 – hpaulj
ありがとうございます。私はadaboostクラシファイアでデータを使用したい。 cross_val_scoreでは、入力データセットを指定する必要があります。すべてのデータが1つのデータ構造にあるときに私は指定 'CLF = AdaBoostClassifier(n_estimators = 100) スコア= cross_val_score(CLF、データ、target_final) C = scores.mean()'。しかし、2つのデータセットでは、どのようにcross_val_scoreにそれを供給しますか?ご覧のとおり、私は初心者です。 – Confused
分類子はどのような配列を取ることができますか?構造化された配列を取ることができますか、それとも均一なdtypeを持つ2次元配列でなければなりませんか?どのように文字列と浮動小数点数の組み合わせを扱うのですか? – hpaulj