benfordd = dict()
for attr in attrs:
benfordd.setdefault(attr, []).extend([val*1e6 for val in x if not np.isnan(val)])
以上只是我代码的一部分,为什么当我在ipython中运行时,我得到了这个:
TypeError:这些类型不支持此功能,并且无法安全地强制转换为支持的类型。
有谁知道这需要什么值? attr是字符串。
p.s。,“val”代表什么?
答案 0 :(得分:1)
我相信在使用Sump with numpy时会发生此错误。原因是Sage预先准备了您的输入,以便例如0.6**2
已翻译为RealNumber('0.6') ** Integer(2)
。这允许它以任意精度处理实数。不幸的是,numpy无法处理这些,因为它不知道RealNumber
是什么。
如果您定义RealNumber = float
,代码应该有效;见the docs。