day*_*mer 9 python numpy matplotlib ipython scipy
我有以下格式的文件:
0,0.104553357966
1,0.213014562052
2,0.280656379048
3,0.0654249076288
4,0.312223429689
5,0.0959008911106
6,0.114207780917
7,0.105294501195
8,0.0900673766572
9,0.23941317105
10,0.0598239513149
11,0.541701803956
12,0.093929580526
Run Code Online (Sandbox Code Playgroud)
我想用ipython绘图函数绘制这些点,执行以下操作:
In [40]: mean_data = load("/Users/daydreamer/data/mean")
Run Code Online (Sandbox Code Playgroud)
但它没有说出以下内容:
---------------------------------------------------------------------------
IOError Traceback (most recent call last)
/Users/daydreamer/<ipython-input-40-8f1329559411> in <module>()
----> 1 mean_data = load("/Users/daydreamer/data/mean")
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy-1.6.1-py2.7-macosx-10.5-fat3.egg/numpy/lib/npyio.pyc in load(file, mmap_mode)
354 except:
355 raise IOError, \
--> 356 "Failed to interpret file %s as a pickle" % repr(file)
357 finally:
358 if own_fid:
IOError: Failed to interpret file '/Users/daydreamer/data/mean' as a pickle
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
Dav*_*ber 15
该numpy.load例程用于加载pickle .npy或.npz二进制文件,可以分别使用numpy.save和创建numpy.savez.由于您有文本数据,因此这些不是您想要的例程.
您可以使用加载逗号分隔值numpy.loadtxt.
import numpy as np
mean_data = np.loadtxt("/Users/daydreamer/data/mean", delimiter=',')
Run Code Online (Sandbox Code Playgroud)
这是一个完整的例子(StringIO用于模拟文件I/O).
import numpy as np
import StringIO
s = """0,0.104553357966
1,0.213014562052
2,0.280656379048
3,0.0654249076288
4,0.312223429689
5,0.0959008911106
6,0.114207780917
7,0.105294501195
8,0.0900673766572
9,0.23941317105
10,0.0598239513149
11,0.541701803956
12,0.093929580526"""
st = StringIO.StringIO(s)
a = np.loadtxt(st, delimiter=',')
Run Code Online (Sandbox Code Playgroud)
现在我们有:
>>> a
array([[ 0. , 0.10455336],
[ 1. , 0.21301456],
[ 2. , 0.28065638],
[ 3. , 0.06542491],
[ 4. , 0.31222343],
[ 5. , 0.09590089],
[ 6. , 0.11420778],
[ 7. , 0.1052945 ],
[ 8. , 0.09006738],
[ 9. , 0.23941317],
[ 10. , 0.05982395],
[ 11. , 0.5417018 ],
[ 12. , 0.09392958]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25760 次 |
| 最近记录: |