2015-10-09 28 views
0

我有一個具有153行和394列的CSV文件。到目前爲止,我能夠讀取CSV文件並刪除最後三列:Numpy - 從CSV讀取數組爲[153,]而不是[153,394]

all_data = np.genfromtxt('data.csv',delimiter=",",names=True) 
test_data = all_data[::3] 
test_data_x = all_data[:,:-3] 

這一直工作得很好,直到今天。正如我今天跑了,這將無法正常工作,當我打印出來all_data我:

[(1,5,10...4),(2,7,16...3),...,(153,2,16...2)] 

我打印出來的all_data我回到形狀[153]。我曾嘗試np.reshape(),但後來我得到:

ValueError: total size of new array must be unchanged 

已更新的唯一的事情是,我是在讀取數據的CSV - 但其僅與標題相同的格式了。我不知道如何正確讀取這個CSV的numpy?

+0

什麼'print({len(row)in all_data})'return? – DSM

+1

組([394])。從玩它,它似乎是名稱=真正導致這種情況發生,因爲當我刪除我得到一個正常的數組。 – Abi

+0

使用'names'創建一個結構化數組。這些列現在是'dtype'定義的'fields'。 153個元素,394個字段。 – hpaulj

回答

0

如果我不得不猜測,新csv文件中有一個雜散字符,它阻止了一些數字被解釋爲數字。您可能需要逐項檢查每個產生的元組,以查找有問題的數據位。

+0

我只是測試了一下。不幸的是,沒有流浪的角色 - 但我發現,如果我刪除了「名稱=真」,那麼它的工作。然後我剛剛添加了skip_header = 1,但我寧願保留這些標題。我能想到的標題唯一的問題是它們在每個標題之前都有一個空格。這會導致問題嗎? – Abi