[問題] pandas 轉 numpy.array
這是一份linearly separable的data
(取自林軒田老師的ML課程)
https://gist.github.com/anonymous/ca0ca0c4f61d14ae11a0
用下面的程式讀取後丟給perceptron
可以確實把data分開
----------
import numpy as np
def readfile(filename):
with open(filename, 'r') as f:
X = []
Y = []
for line in f:
split = line.split()
X.append(list(map(float, split[:-1])))
Y.append(int(split[-1]))
return np.array(X), np.array(Y)
train = readfile('train.dat')
----------
但如果用pandas讀取 會變成不可分
perceptron會卡住
----------
import pandas as pd
pd_train = pd.read_csv('train.dat', header=None,
delim_whitespace=True).as_matrix()
pd_train = pd_train[:, :-1], pd_train[:, -1]
----------
用np.array_equal後發現值確實不一樣
而np.allclose說兩邊很接近
請問如果要使用pandas讀取這種data
有什麼地方需要注意的呢?
謝謝
附上程式碼
https://gist.github.com/anonymous/f64eb5dcc2f313e1474f
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.44.143
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1447396241.A.5BB.html
→
11/13 22:53, , 1F
11/13 22:53, 1F
加了dtype=np.float32就變成可分
np.array_equal比較還是False
另外用dtype=np.float64又變成不可分
推
11/14 16:01, , 2F
11/14 16:01, 2F
推
11/14 16:06, , 3F
11/14 16:06, 3F
→
11/14 16:06, , 4F
11/14 16:06, 4F
原來有np.loadtxt()可以用
用np.array_equal跟第一個方法比較的結果是一樣的
謝謝兩位
※ 編輯: HANASE (36.228.185.23), 11/15/2015 03:27:09
→
11/15 10:14, , 5F
11/15 10:14, 5F
→
11/15 10:16, , 6F
11/15 10:16, 6F
→
11/15 10:18, , 7F
11/15 10:18, 7F
Python 近期熱門文章
PTT數位生活區 即時熱門文章