当我将字符串数据作为字符存储在numpy数组中并稍后检索它时,它总是返回一个值为b' x'对于' x'我早先存储过。目前我使用愚蠢的方式通过str(some_array[row, col...]).lstrip("b'").rstrip("'")
提取值,我相信应该有一个更简单的方法来做到这一点。有人知道吗?谢谢!
答案 0 :(得分:2)
根据您的输出,您使用的是Python 3(其中bytes
和str
是不同的类型)。这个答案适用于dtype='S'
(字节串)的数组;对于dtype=str
或dtype='U'
,它们存储为unicode字符串(至少对于python 3)并且没有问题。
最简单的事情可能是
str(some_array[row,col...],encoding='ascii')
请注意,您可以使用其他编码而不是ascii('UTF-8'
是常见的),哪一个是正确的取决于您用于将数据放入numpy数组的那个。如果您使用的是非奇特的字母数字字符,那么它应该并不重要。如果你将str
放入数组中,numpy使用ascii对其进行编码,所以除非你特别努力做一些不同的事情,'ascii'
应该是正确的。
(作为参考,我发现这个答案有用https://stackoverflow.com/a/14010552/4657412)