上一主题

numpy.multiply

下一主题

numpy.power

numpy.divide

numpy.divide(x1, x2[, out]) = <ufunc 'divide'>

逐元素分割参数。

参数:

x1:array_like

股息数组。

x2:array_like

除数数组。

out:ndarray,可选

数组,其中放置输出。它的类型被保留,并且它必须是保持输出的正确形状。请参阅doc.ufuncs。

返回:

y:ndarray或scalar

x1/x2,逐元素。如果x1x2都是标量,则返回标量。

也可以看看

seterr
设置是否在溢出,下溢和除零时提高或警告。

笔记

在阵列广播方面等同于x1 / x2

可以使用seterr更改除以零的行为。

在Python 2中,当x1x2都是整数类型时,divide会像floor_divide在Python 3中,它的行为像true_divide

例子

>>> np.divide(2.0, 4.0)
0.5
>>> x1 = np.arange(9.0).reshape((3, 3))
>>> x2 = np.arange(3.0)
>>> np.divide(x1, x2)
array([[ NaN,  1. ,  1. ],
       [ Inf,  4. ,  2.5],
       [ Inf,  7. ,  4. ]])

注意整数类型的行为(仅限Python 2):

>>> np.divide(2, 4)
0
>>> np.divide(2, 4.)
0.5

除以零总是在整数算术中产生零(再次,仅Python 2),并且不会引发异常或警告:

>>> np.divide(np.array([0, 1], dtype=int), np.array([0, 0], dtype=int))
array([0, 0])

但是,可以使用seterr来捕获零:

>>> old_err_state = np.seterr(divide='raise')
>>> np.divide(1, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FloatingPointError: divide by zero encountered in divide
>>> ignored_states = np.seterr(**old_err_state)
>>> np.divide(1, 0)
0