2

我正在观察一些奇怪的行为。这是代码片段:

>>> import numpy as np
>>> a = [[1, .3], [0, .5], [2, .23]]
>>> b = np.array(a.sort())
>>> b
array(None, dtype=object)

这种行为是预期的吗?如果我为就地排序添加一个中间步骤,它会按预期工作:

>>> a = [[1, .3], [0, .5], [2, .23]]
>>> a.sort()
>>> b = np.array(a)
>>> b
array([[ 0.  ,  0.5 ],
       [ 1.  ,  0.3 ],
       [ 2.  ,  0.23]])

有人可以解释发生了什么吗?

4

1 回答 1

3

问题是a.sort()不返回排序列表。它返回None

>>> a.sort() is None
True

你可以使用sorted(a)

>>> b = np.array(sorted(a))
>>> b
array([[ 0.  ,  0.5 ],
       [ 1.  ,  0.3 ],
       [ 2.  ,  0.23]])

但是,这将创建a.

于 2014-02-03T16:48:16.277 回答