@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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)