np.isreal行为在pandas.DataFrame和numpy.array中有所不同

np.isreal行为在pandas.DataFrame和numpy.array中有所不同,第1张

np.isreal行为在pandas.DataFrame和numpy.array中有所不同

部分答案是

isreal
仅打算像第一个参数那样用于数组

您想

isrealobj
在每个元素上使用以获取您在此处看到的行为:

In [11]: a = np.array(["hello","world",{"a":5,"b":6,"c":8},"usa","india",{"d":9,"e":10,"f":11}])In [12]: aOut[12]:array(['hello', 'world', {'a': 5, 'b': 6, 'c': 8}, 'usa', 'india',       {'d': 9, 'e': 10, 'f': 11}], dtype=object)In [13]: [np.isrealobj(aa) for aa in a]Out[13]: [True, True, True, True, True, True]In [14]: np.isreal(a)Out[14]: array([ True,  True,  True,  True,  True,  True], dtype=bool)

的确留下了问题,如何处理

np.isreal
非数组式的东西,例如

In [21]: np.isrealobj("")Out[21]: TrueIn [22]: np.isreal("")Out[22]: FalseIn [23]: np.isrealobj({})Out[23]: TrueIn [24]: np.isreal({})Out[24]: True

原来,这源于

.imag
因为该测试
isreal
确实是:

return imag(x) == 0   # note imag == np.imag

就是这样。

In [31]: np.imag(a)Out[31]: array([0, 0, 0, 0, 0, 0], dtype=object)In [32]: np.imag("")Out[32]:array('',      dtype='<U1')In [33]: np.imag({})Out[33]: array(0, dtype=object)

这将

.imag
在数组上查找属性。

In [34]: np.asanyarray("").imagOut[34]:array('',      dtype='<U1')In [35]: np.asanyarray({}).imagOut[35]: array(0, dtype=object)

我不确定为什么尚未在字符串大小写中设置…



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5664302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存