亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 NumPy 在 Python 中對 str 進行排序

如何使用 NumPy 在 Python 中對 str 進行排序

千萬里不及你 2023-06-27 16:11:41
a = np.array(10,2,3,1,20,30) #I got it from the Input. b = np.sort(a)它給了我一個結果[1,10,2,20,3,30]而不是[1,2,3,10,20,30]
查看完整描述

3 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

由于您正在獲取輸入并將其添加到數組中,因此“數字”將是str而不是ints。您需要首先將輸入轉換為接受int而不是str

將輸入更改為int

user_in = int(input()) # ex: '4'
print(type(user_in)) # <class 'int'>

請注意我如何使用將int()用戶input()輸入從 a 轉換str為 an 的方法int

現在可以將輸入添加到數組中,由于值是整數而不是字符串,您將獲得預期的結果。

將列表中現有的項目修改為int

另一種方法是將包含數字字符串的數組更改為ints. 您可以map()遍歷數組中的所有項目,將它們更改為int.

arr = list(map(int, arr))

這將遍歷您的列表并將每個項目更改為類型int


查看完整回答
反對 回復 2023-06-27
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

編寫代碼時的準確性和您的問題很重要。


您的示例數組會產生錯誤:


In [69]: a = np.array(10,2,3,1,20,30)                                                                

---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-69-d65567166292> in <module>

----> 1 a = np.array(10,2,3,1,20,30)


TypeError: array() takes from 1 to 2 positional arguments but 6 were given

將其更改為整數列表:


In [70]: a = np.array([10,2,3,1,20,30])                                                              

In [71]: a                                                                                           

Out[71]: array([10,  2,  3,  1, 20, 30])

排序做你想要的:


In [72]: np.sort(a)                                                                                  

Out[72]: array([ 1,  2,  3, 10, 20, 30])

但如果輸入是字符串或字符串列表:


In [73]: a = np.array('10,2,3,1,20,30'.split(','))                                                   

In [74]: a                                                                                           

Out[74]: array(['10', '2', '3', '1', '20', '30'], dtype='<U2')

In [75]: np.sort(a)                                                                                  

Out[75]: array(['1', '10', '2', '20', '3', '30'], dtype='<U2')

排序是字符串詞法的。并且使用引號來顯示字符串是很清楚的。


查看完整回答
反對 回復 2023-06-27
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

import numpy as np

arr = np.array([10,2,3,1,20,30])

print(np.sort(arr))

這很好用。首先創建一個列表,然后再嘗試對其進行排序。


查看完整回答
反對 回復 2023-06-27
  • 3 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號