【发布时间】:2017-04-12 07:25:14
【问题描述】:
Python 版本:3.5.2 Numpy 版本:1.12.1
错误:
import numpy as np
s = 'Hello World'
np.frombuffer(s, dtype='S1')
AttributeError: 'str' object has no attribute '__buffer__'
尝试过的事情:
- 试过在线 Ideone 编译器,在 Python3.xx 中遇到同样的错误。
- 引用 scipy faqs 以获得 numpy 和 python 兼容版本,其中指出“NumPy 支持 Python 2.x 系列,(版本 2.6 和 2.7),以及 Python 3.2 和更新版本。第一个支持 Python 3 的 NumPy 版本是 NumPy 1.5.0。”
无法解决问题,尝试 stackoverflow 解决同样的问题但没有找到,可能是我错过了它。 关于错误原因以及如何在 python3.xx 中解决它的任何建议或线索。
【问题讨论】:
-
所以起初我觉得哦.. 这是一个简单的 Dtype 错误。然后我尝试了,然后我更加努力。现在我很焦虑。
-
字符串不是缓冲区,尤其是在字符串是 unicode 的 py3 中。你想要什么数组?你为什么使用
frombuffer?这不是初学者工具。 -
frombufferdocs 有一个这样的例子,但需要对它进行改进以供 py3 使用。 -
stackoverflow.com/q/22236749 是唯一相关的 SO 问题,表明
frombuffer是多么罕见和专业。将s创建为字节串可能会起作用。我不能从这里测试。 -
@hpaulj 感谢您提供宝贵的 cmets 和链接。初学者通常从文档开始,这是我为了了解 frombuffer 并变得更加了解该主题而采取的方式。
标签: python-3.x numpy