如何从numpy数组中获取字符串值?

use*_*107 5 python arrays numpy

当我将字符串数据作为字符存储在一个 numpy 数组中,并稍后检索这些值时,它总是为我之前存储的 'x' 返回一个作为 b'x' 的值。目前我正在使用愚蠢的方式通过执行来提取价值str(some_array[row, col...]).lstrip("b'").rstrip("'"),我相信应该有一种更简单的方法来做到这一点。有人知道吗?谢谢!

Dav*_*idW 1

根据您的输出,您使用的是 Python 3(其中bytesstr是不同的类型)。这个答案适用于带有dtype='S'(字节串)的数组;或者dtype=str它们dtype='U'存储为 unicode 字符串(至少对于 python 3)并且没有问题。

最简单的事情可能是

str(some_array[row,col...],encoding='ascii')
Run Code Online (Sandbox Code Playgroud)

请注意,您可以使用其他编码代替 ascii('UTF-8'很常见),哪一种编码是正确的取决于您使用哪一种编码将数据放入 numpy 数组中。如果您使用非外来字母数字字符,那么这并不重要。如果您将 an 放入str数组中,numpy 使用 ascii 对其进行编码,因此除非您特别努力做一些不同的事情,否则'ascii'应该是正确的。

(作为参考,我发现这个答案很有帮助/sf/answers/980738671/