3 回答

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

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')
排序是字符串詞法的。并且使用引號來顯示字符串是很清楚的。

TA貢獻1859條經驗 獲得超6個贊
import numpy as np
arr = np.array([10,2,3,1,20,30])
print(np.sort(arr))
這很好用。首先創建一個列表,然后再嘗試對其進行排序。
添加回答
舉報