繁体   English   中英

Numpy np.array,带有dtype TypeError

[英]Numpy np.array with dtype TypeError

描述

我花了大约一个小时试图找出一个numpy数组构造错误。 我一定不能正确使用numpy dtypes,但错误消息不够描述,我没有给出足够好的堆栈跟踪来查找错误。

创建相同错误的简化示例

 import numpy as np
 names = ['id', 'x']
 formats = [np.int64, np.float64]
 np.array([1, 1.0], dtype={'names': names, 'formats': formats})

以下代码导致错误

 ----> 1 np.array([1, 1.0], dtype={'names': names, 'formats': formats})
 TypeError: a bytes-like object is required, not 'int'

所以我得到的错误发生在第一个元素是一个int,但为什么它期望像对象一样的字节?

答:它与第一个元素在int中的事实无关。 列表需要是一个元组,见下文。

解决方案是numpy需要单个元组或元组列表。 不是列表或列表的列表。

以下作品

 np.array((1, 1.0), dtype={'names': names, 'formats': formats})

我发现numpy没有在错误中表明这是预期的结果令人沮丧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM