numpy.divide¶
-
numpy.
divide
(x1, x2[, out]) = <ufunc 'divide'>¶ 逐元素分割参数。
参数: x1:array_like
股息数组。
x2:array_like
除数数组。
out:ndarray,可选
数组,其中放置输出。它的类型被保留,并且它必须是保持输出的正确形状。请参阅doc.ufuncs。
返回: y:ndarray或scalar
商
x1/x2
,逐元素。如果x1
和x2
都是标量,则返回标量。也可以看看
seterr
- 设置是否在溢出,下溢和除零时提高或警告。
笔记
在阵列广播方面等同于
x1
/x2
。可以使用
seterr
更改除以零的行为。在Python 2中,当
x1
和x2
都是整数类型时,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