Numpy排序的工作原理很奇怪

3htmauhk  于 2023-01-09  发布在  其他
关注(0)|答案(1)|浏览(109)

我有一个庞大的data = np.array([1000, 2500, 1400, 1800, 900, 4200, 2200, 1900, 3500])。我需要附加一个用户输入和排序数据。

import numpy as np

data = np.array([1000, 2500, 1400, 1800, 900, 4200, 2200, 1900, 3500])

new_data = input()
data = np.append(data, new_data)
data = np.sort(data)
print(data)

不使用append,我有正常的排序数组,但是当我使用它时,我有

['1000' '1400' '1800' '1900' '2200' '2500' '3500' '4200' '654' '900']

我注意到xxx数字出现在列表的末尾。作为输入的xxxx数字出现在它应该出现的地方

['1000' '1400' '1800' '1900' '2200' '2222' '2500' '3500' '4200' '900']
cx6n0qe3

cx6n0qe31#

Input()的数据类型是一个字符串,这就是为什么当你把它附加到数组中时,它会把每个元素都当作一个字符串,并按第一个字母表排序,然后按后面的字母表排序。
检查前后的数据类型-

#BEFORE APPENDING - 
>>type(data[3])
numpy.int64

#AFTER APPENDING - 
>>type(data[3])
numpy.str_

而是先将输入转换为intfloat-
x一个一个一个一个x一个一个二个x

相关问题