[英]Initialize numpy array using in-place sorted list
我觀察到一些奇怪的行為。 這是代碼片段:
>>> 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]])
有人可以解釋發生了什么嗎?
問題是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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.