你好numpy 1.7和1.8有兼容性问题吗? 我使用python 2.7和numpy 1.7创建的npy出错了。现在我使用python 3.4和numpy 1.8
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\numpy\lib\format.py", line 334, in read_array_header_1_0
d = safe_eval(header)
File "C:\Python34\lib\site-packages\numpy\lib\utils.py", line 1128, in safe_eval
ast = compiler.parse(source, mode="eval")
File "C:\Python34\lib\ast.py", line 35, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "<unknown>", line 1
{'descr': '<f8', 'fortran_order': False, 'shape': (51L,), }
^
SyntaxError: invalid syntax
答案 0 :(得分:2)
问题在于形状键的值。在python 3中,您无法在声明后添加L.
martin@martin-desktop:~$ python3
Python 3.4.2 (default, Oct 8 2014, 13:08:17)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 3
3
>>> 3L
File "<stdin>", line 1
3L
^
SyntaxError: invalid syntax
>>>
PEP 237,最初于2001年起草,介绍了努力消除int
和long
整数之间的区别。这项工作以跨越Python 2.2到2.4的三阶段方法完成。 Python 3.0通过正式删除 long()类型和long
文字(例如123456789L
)添加了最后一步。
在您使用 long()的地方, int()是替代品,它会将值存储在正确的内部表示中。
在您使用L
后缀生成long
文字的地方,必须删除L,否则会引发 SyntaxError 。
http://docs.pythonsprints.com/python3_porting/py-porting.html#long-integers