在python 2中,以下代码可以工作:
a = np.array([[1,5],[2,3]])
print a
print()
a[a<2] = 0
print a
a[a <> 5] = 0
print a
但在python3中,它会触发语法错误:
a[a <> 5] = 0
File "<ipython-input-14-165e29d9f8e4>", line 1
a[a <> 5] = 0
^
SyntaxError: invalid syntax
"not equal to"的正确语法现在是a[a != 5] = 0
(Python 3中另一个向后兼容性中断的实例)。
在Python 3中,<>
被!=
取代。这类似于将print
从语句更改为函数的方式。参见文档中的比较:
!=
也可以写成<>
,但这是一种过时的用法,只是为了向后兼容而保留。新代码应该始终使用!=
。
p。s:你可以偷偷摸摸地做:
from __future__ import barry_as_FLUFL
允许<>
并使!=
成为SyntaxError,但实际上不要,只使用!=
。