python - 字符串数组之一未排序
问题描述
import numpy as np
arr1=np.array(['102.0','135.0','135.0','152.0','93.0','95.0'])
print(arr1)
arr1.sort()
print(arr1)
print()
arr2=np.array(['86.0','82.0','84.0','87.0','95.0','89.0'])
print(arr2)
arr2.sort()
print(arr2)
第一个数组没有排序,但是第二个是排序的,为什么?我找不到错误。
解决方案
该sort
函数仅对整数进行正确排序,因此对于字符串,它按第一个字符排序,因此超过 100 的将在 90 左右之前,修复的方法是将它们更改为整数:
import numpy as np
arr1=np.array(['102.0','135.0','135.0','152.0','93.0','95.0'])
arr1 = arr1.astype(float)
print(arr1)
arr1.sort()
print(arr1)
print()
arr2=np.array(['86.0','82.0','84.0','87.0','95.0','89.0'])
arr2 = arr2.astype(float)
print(arr2)
arr2.sort()
print(arr2)
正如@juanpa.arrivillaga 提到的:
它按所有字符按字典顺序排序
推荐阅读
- python - 使用 open cv 读取图像时遇到问题
- python - 用于实时合成的 pygame 声音模块
- json - Swift 可编码对象数组
- javascript - 以新形式反应更新状态
- sql - 如何从 Exadata Oracle 中的多个表构建历史表?
- docker - Azure Web App for Container 上的 Docker Web 应用
- shopify - 按下按钮时的shopify切换模式
- python - python中的Soup.select方法-如何只选择一个分数?
- go - 可以在 Go 中对结构进行动态编组吗?
- c - 在 C 编程中从图像文件返回 3D 数组