dtype float'object'和'float'上算术的不同行为

dtype float'object'和'float'上算术的不同行为,第1张

dtype float'object'和'float'上算术的不同行为

@Warren指出

square
“代表”相乘。我通过制作包含列表的对象数组来验证了这一点

In [524]: arr = np.array([np.arange(3), 3, [3,4]])In [525]: np.square(arr)TypeError: can't multiply sequence by non-int of type 'list'

square
适用于数组的其余部分:

In [526]: np.square(arr[:2])Out[526]: array([array([0, 1, 4]), 9], dtype=object)

sqrt
不适用于以下任何一项:

In [527]: np.sqrt(arr)---------------------------------------------------------------------------AttributeError      Traceback (most recent call last)<ipython-input-527-b58949107b3d> in <module>()----> 1 np.sqrt(arr)AttributeError: 'numpy.ndarray' object has no attribute 'sqrt'

我可以

sqrt
使用自定义类进行工作:

class Foo(float):    def sqrt(self):        return self**0.5In [539]: arr = np.array([Foo(3), Foo(2)], object)In [540]: np.square(arr)Out[540]: array([9.0, 4.0], dtype=object)In [541]: np.sqrt(arr)Out[541]: array([1.7320508075688772, 1.4142135623730951], dtype=object)


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

原文地址: http://outofmemory.cn/zaji/5632439.html

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

发表评论

登录后才能评论

评论列表(0条)

保存