使用自定义数据类型时Numpy中的TypeError

时间:2014-04-24 00:26:32

标签: python numpy

我正在使用this book学习numpy。但是,在其中一个作业中,我遇到了这个错误:

TypeError: expected a readable buffer object

这是我的代码:

record = dtype([('name', 'str_', 40), ('stock', 'int32'), ('price', 'float32')])
items = array(['Book A', 5, 29.95], dtype=record)

1 个答案:

答案 0 :(得分:2)

当你使用numpy数组时,你应该创建一个元组列表而不是列表元组。 Numpy数组需要一个元组列表。希望,以下解决您的问题。

>>> import numpy as np
>>> record = np.dtype([('name', 'str_', 40), ('stock', 'int32'), ('price', 'float32')])
>>> var=[('Book A', 5, 29.95)]
>>> items = np.array(var, dtype=record)
>>> items
array([('Book A', 5, 29.950000762939453)],
      dtype=[('name', '|S40'), ('stock', '<i4'), ('price', '<f4')])
>>>