在python中使用numpy对100x100数组进行排序



>我有一个数组,大小为100x100,随机数从1到20。我必须按行对表进行排序。我尝试使用此命令:

def shedule(self):
a=self.arr
a.sort()
print(self.arr)

但结果显示了以下序列中的数字(第一行(:

['1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '10' '10' '10' '10' '10' '10'
'11' '11' '11' '11' '11' '12' '12' '13' '13' '13' '13' '14' '14' '14'
'14' '15' '16' '16' '16' '16' '16' '17' '17' '17' '17' '17' '18' '18'
'18' '19' '19' '19' '19' '2' '2' '2' '2' '2' '2' '20' '20' '20' '20'
'3' '3' '3' '3' '3' '4' '4' '4' '4' '4' '4' '4' '4' '4' '4' '5' '5' '5'
'5' '6' '6' '6' '6' '6' '6' '6' '6' '7' '7' '7' '7' '8' '8' '9' '9' '9'
'9' '9' '9' '9' '9']]

这是因为您的元素是字符串而不是整数,您需要使用self.arr = self.arr.astype('int32')将元素转换为整数,然后才能执行self.arr.sort(axis=1)

def shedule(self):
self.arr = self.arr.astype('int32')
self.arr.sort(axis=1)
print(self.arr)

你有 2 个问题。 首先你有字符串而不是数字,其次你的数组是二维的,换句话说,2轴,所以你必须指定你想要触摸的轴我相信你在这里谈论的是列——那将是axis=1。还请记住尺寸基本上是长度,你不能有100*100;那是形状

最新更新