benfordd = dict()
for attr in attrs:
benfordd.setdefault(attr, []).extend([val*1e6 for val in x if not np.isnan(val)])
上面只是我的代码的一部分,为什么当我在 ipython 中运行它时,我得到这个:
类型错误:这些类型不支持函数,并且无法安全地强制转换为支持的类型。
有谁知道这需要什么值? attr 是字符串。
另外,“val”代表什么?
最佳答案
我相信将 Sage 与 numpy 一起使用时可能会发生此错误。原因是 Sage 会准备您的输入,以便例如0.6**2
转换为 RealNumber('0.6') ** Integer(2)
。这使得它能够以任意精度处理实数。不幸的是,numpy 无法处理这些,因为它不知道 RealNumber
是什么。
如果您定义RealNumber = float
,则代码应该可以工作;请参阅the docs .
关于python - 帮忙解决字典中的这个打字错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4149076/