【问题标题】:how to get the string value from numpy array?如何从numpy数组中获取字符串值?
【发布时间】:2025-12-17 23:50:02
【问题描述】:

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

【问题讨论】:

  • 包含演示问题的代码会很有用。还有,python和numpy是什么版本的?
  • 我发现如果我使用 dtype = 'S' 会发生这种情况,如果我使用 dtype = str 则不会发生这种情况。我可能没有完全理解这些数据类型的含义......

标签: python arrays numpy


【解决方案1】:

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

最简单的可能是

str(some_array[row,col...],encoding='ascii')

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

(作为参考,我发现这个答案很有帮助https://*.com/a/14010552/4657412

【讨论】: