【发布时间】:2011-11-30 02:59:32
【问题描述】:
我在对包含数字作为字符串的 numpy 数组进行排序时遇到问题。我需要将它们保留为字符串,因为整数后面还有其他单词。
它以相反的顺序对负数进行排序:
>>> import numpy as np
>>> a = np.array(["3", "-2", "-1", "0", "2"])
>>> a.sort()
>>> a
array(['-1', '-2', '0', '2', '3'], dtype='|S2')
我希望输出是:
array(['-2', '-1', '0', '2', '3'], dtype='|S2')
有什么建议吗?
【问题讨论】:
-
所以你在一个字符串中保存了两种类型的数据?似乎不太适合
numpy。 -
“我需要将这些保留为字符串,因为整数后面还有其他单词”。所以你有一个像
"76 trombones"这样的字符串,你想把它当作数字76后跟单词"trombones"? 然后这样做。解析字符串并创建 (number, rest of string) 的 2 元组。 -
不,它不乖。有时它是一个数字和字符串,有时它只是一个字符串。 “自然排序”方法有效。
标签: python arrays sorting numpy