我想将mydata.csv
文件转换为Numpy数组。
我有一个矩阵表示的mydata.csv
文件(该矩阵是14*79的,带符号值且没有任何标题名称)。
-0.094391 -0.086641 0.31659 0.66066 -0.33076 0.02751 …
-0.26169 -0.022418 0.47564 0.39925 -0.22232 0.16129 …
-0.33073 0.026102 0.62409 -0.098799 -0.086641 0.31832 …
-0.22134 0.15488 0.69289 -0.26515 -0.021011 0.47096 …
我以为这段代码可以在这种情况下正常工作。
import numpy as np
data = np.genfromtxt('mydata.csv', dtype=float, delimiter=',', names=False)
但是它没有起作用。
我希望最终的Numpy数据形状为 data.shape = (14, 79)
然而,我的错误消息看起来像这样..
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-26-060012d7c568> in <module>
1 import numpy as np
2
----> 3 data = np.genfromtxt('output.csv', dtype=float, delimiter=',', names=False)
~\Anaconda3\envs\tensorflow\lib\site-packages\numpy\lib\npyio.py in genfromtxt(fname, dtype, comments, delimiter, skip_header, skip_footer, converters, missing_values, filling_values, usecols, names, excludelist, deletechars, replace_space, autostrip, case_sensitive, defaultfmt, unpack, usemask, loose, invalid_raise, max_rows, encoding)
1810 deletechars=deletechars,
1811 case_sensitive=case_sensitive,
-> 1812 replace_space=replace_space)
1813 # Make sure the names is a list (for 2.5)
1814 if names is not None:
~\Anaconda3\envs\tensorflow\lib\site-packages\numpy\lib\_iotools.py in easy_dtype(ndtype, names, defaultfmt, **validationargs)
934 # Simple dtype: repeat to match the nb of names
935 if nbtypes == 0:
--> 936 formats = tuple([ndtype.type] * len(names))
937 names = validate(names, defaultfmt=defaultfmt)
938 ndtype = np.dtype(list(zip(names, formats)))
TypeError: object of type 'bool' has no len()
import numpy as np
data = np.genfromtxt('mydata.csv', dtype=float, delimiter='\t', names=None)
但是现在的data
是[nan nan nan nan nan nan nan nan nan nan nan nan nan nan]
- mario119delimiter=','
和delimiter='\t'
。您能否找出文件中实际的分隔符而不是猜测?该文件是如何创建的?您能否在编辑器中打开文件并检查分隔字段的字符? - Warren Weckessermydata.csv
文件 https://pastebin.com/eKf9Sqip - mario119np.loadtxt('mydata.csv', delimiter='\t')
和np.genfromtxt('mydata.csv', delimiter='\t')
两种方式都能正常工作。 - Warren Weckesser