2
我有一個CSV文件,其中有前三列這樣Numpy.loadtxt進口數據數組的數組,而不是一個多維數組
2011,12,25,...
2011,12,26....
2011,12,27,...
...
這些列基本上是年,月,日。其他列包含字符串。共有100行和6列。我用numpy.loadtxt
得到這個到一個數組,使用
input = numpy.loadtxt('file.csv', dtype='i4, i4, i4, S4, S4, S4', delimiter=',')
問題:據我瞭解,這loadtxt操作應應返回它的形狀100x6
數組。但是,這會返回一個數組100x1
,每個元素都是1x6
的數組。我想這是正常的二維數組100x6
。我在網上查找了一些資源。看起來,由於csv數據中的一些列包含字符串,我必須使用dtype
參數,並且這會導致輸入爲數組的一維數組而非二維數組。我曾嘗試一些在這些網站給出的例子,他們似乎只要在CSV文件中的所有條目數
我所尋找的是無論是
- 辦法精細工作我的導入數據到一個普通的2D陣列
- 爲什麼loadtxt進口的陣列
樣品CSV文件的數組一些解釋:
2011,12,25,AAA,AAA,AAA
2011,12,26,BBB,BBB,BBB
2011,12,27,CCC,CCC,CCC
指定名稱的更簡單方法是使用'genfromtxt'代替:'np.genfromtxt('file.csv',dtype ='i4,i4,i4,S4,S4,S4',names ='Y, M,D,A,B,C')如果file.csv有頭名稱,你可以說'names = True',它會從文件中加載它們。 – askewchan
+1謝謝@Veedrac和@askewchan。我嘗試使用'loadtxt'和'genfromtxt'。兩者都很好。目前我正在使用'genfromtxt',因爲@askewchan指出,它確實更容易。謝謝您的幫助! – playercharlie