簡體   English   中英

排序numpy數組時輸出錯誤

[英]Wrong output while sorting numpy array

我寫了一個python代碼,該代碼按升序對第二列中的多維numpy數組進行排序

import numpy as np
xt = [['S_P' , '9'  ,'42'],['S_SB', '9', '30'],['C_G' ,'14', '17'],['T_G', '12' ,'25'],['C_O' ,'14' ,'34'],['C_P' ,'14', '39'],['C_SB' ,'14' ,'20'],['T_O','12' ,'39']]

xb =  sorted(xt , key=lambda x: x[1])
xb = np.array(xb)
print xb

輸出是

[['T_G' '12' '25'] 
 ['T_O' '12' '39'] 
 ['C_G' '14' '17']  
 ['C_O' '14' '34'] 
 ['C_P' '14' '39'] 
 ['C_SB' '14' '20'] 
 ['S_P' '9' '42'] 
 ['S_SB' '9' '30']]

我期望的結果是

>   [['S_P' '9' '42'] 
>      ['S_SB' '9' '30']
>      ['T_G' '12' '25'] 
>      ['T_O' '12' '39'] 
>      ['C_G' '14' '17']  
>      ['C_O' '14' '34'] 
>      ['C_P' '14' '39'] 
>      ['C_SB' '14' '20']]

我正在使用python 2.7

我認為您錯過了int電話。 當前它正在對第一個值進行排序,就好像它們是字符串一樣。 在這種情況下,“ 12”小於“ 9”。

xb =  sorted(xt , key=lambda x: int(x[1]))
xb = np.array(xb) 
print xb

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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