2
我有一些代碼,一直在Python 2.7工作正常使用numpy的loadtxt函數讀取一個csv文件到一個numpy數組。該文件可以看到here。我用這個命令Numpy的loadtxt行爲改變與Python 3
inp = numpy.loadtxt(filename, dtype=str, delimiter=',',skiprows=1
有了這個,我在python得到這個2.7
array([['BKNIF', '01-Jan-2014', '11418.9', '11432.55', '11361', '11385.6',
'0'],
['BSESN', '01-Jan-2014', '21222.19', '21244.35', '21133.82',
'21140.48', '0'],
['DXY', '01-Jan-2014', '80.21', '80.24', '80.16', '80.19', '0'],
['FBV', '01-Jan-2014', '0', '0', '0', '0', '0']],
dtype='|S11')
但是,與Python 3.3,我越來越
array([["b'BKNIF'", "b'01-Jan-2014'", "b'11418.9'", "b'11432.55'",
"b'11361'", "b'11385.6'", "b'0'"],
["b'BSESN'", "b'01-Jan-2014'", "b'21222.19'", "b'21244.35'",
"b'21133.82'", "b'21140.48'", "b'0'"],
["b'DXY'", "b'01-Jan-2014'", "b'80.21'", "b'80.24'", "b'80.16'",
"b'80.19'", "b'0'"],
["b'FBV'", "b'01-Jan-2014'", "b'0'", "b'0'", "b'0'", "b'0'", "b'0'"]],
dtype='<U14')
注意的進口是如何插入圍繞每個項目的雙引號和前面的b。它也顯然決定以不同的方式進行編碼。即使我使用dtype='|S11'
而不是dtype=str
,我也會得到相同的行爲。
請不要評論爲什麼我使用numpy loadtxt來做這件事,或者如果您認爲我對loadtxt的使用效率不高。現在,我需要幫助弄清楚爲什麼行爲發生了變化,以及如何解決這個問題。謝謝。
喔!你能告訴我爲什麼突然需要?我一直無法找到任何有關loadtxt更改的文檔... –
@ Dr.Drew需要什麼? – zhangxaochen
與python2.7,相同的代碼和導入文件進入python而不需要強制.astype(str)。 –