簡體   English   中英

使用就地排序列表初始化numpy數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM