3 回答

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
由于您正在獲取輸入并將其添加到數(shù)組中,因此“數(shù)字”將是str
而不是ints
。您需要首先將輸入轉(zhuǎn)換為接受int
而不是str
將輸入更改為int
:
user_in = int(input()) # ex: '4' print(type(user_in)) # <class 'int'>
請(qǐng)注意我如何使用將int()
用戶input()
輸入從 a 轉(zhuǎn)換str
為 an 的方法int
。
現(xiàn)在可以將輸入添加到數(shù)組中,由于值是整數(shù)而不是字符串,您將獲得預(yù)期的結(jié)果。
將列表中現(xiàn)有的項(xiàng)目修改為int
:
另一種方法是將包含數(shù)字字符串的數(shù)組更改為ints
. 您可以map()
遍歷數(shù)組中的所有項(xiàng)目,將它們更改為int
.
arr = list(map(int, arr))
這將遍歷您的列表并將每個(gè)項(xiàng)目更改為類型int

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
編寫代碼時(shí)的準(zhǔn)確性和您的問(wèn)題很重要。
您的示例數(shù)組會(huì)產(chǎn)生錯(cuò)誤:
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
將其更改為整數(shù)列表:
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')
排序是字符串詞法的。并且使用引號(hào)來(lái)顯示字符串是很清楚的。

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