NumPy true_divide – 按参数划分元素

您好,欢迎来到Numpy true_divide教程 在本教程中,我们将学习 NumPy true_divide() 方法,并看到许多相关示例。那么让我们开始吧!

另请阅读:NumPy Floor_divide – 完整指南


什么是 NumPy true_divide?

true_divide()是NumPy 中的一个函数  ,它将一个数组中的元素除以另一个数组中的元素(逐元素),并返回一个包含答案的数组,即每个逐元素除法的商。

如果x1x2是两个数组,则将true_divide(x1, x2)执行按元素除法,使得x1中的每个元素除以x2中的相应元素,并将结果存储在新数组中。


NumPy true_divide 的语法

让我们看一下该 true_divide() 函数的语法。

numpy.true_divide(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])
范围 描述 必需/可选
x1(类似数组) 股息数组。 必需的
x2(类似数组) 除数数组。 必需的
出去 用于放置结果的替代输出数组。它必须具有与预期输出相同的形状。 选修的
在哪里 接受一个类似数组的对象。在为 True 的位置, out 数组将被设置为 ufunc 结果。在其他地方, out 数组将保留其原始值。 选修的

返回:一个数组,其中包含x1
按元素除以x2商。如果两个输入都是标量,则结果也是标量。


Floor_divide 和 true_divide 之间的区别

在 Python 中,Numpyfloor_divide()函数按元素执行两个数组的向下除法。相当于使用/运算符。

而 NumPy 按元素执行除法,相当于使用运算符。 true_divide() //


NumPy true_divide 的示例

现在让我们直接进入示例并了解该true_divide方法的实际工作原理。

当两个输入都是标量时

import numpy as np
 
a = 18
b = 5
c = 6
# using the true_divide function to perform element-wise division
ans_1 = np.true_divide(a, b)
ans_2 = np.true_divide(a, c)
 
print("a =", a, "\nb =", b)
print("Result 1 =", ans_1)
print("Result 2 =", ans_2)

输出:

a = 18
b = 5
Result 1 = 3.6
Result 2 = 3.0

简单的例子,其中

ans_1 = 18/5 = 3.6
ans_2 = 18/6 = 3

当一个输入是标量而另一个输入是一维数组时

import numpy as np
 
a = [2, 36, 10, 4, 20]
b = 5
# using the true_divide function to perform element-wise division
ans = np.true_divide(a, b)
 
print("a =", a, "\nb =", b)
print("Result =", ans)

输出:

a = [2, 36, 10, 4, 20]
b = 5
Result = [0.4 7.2 2.  0.8 4. ]

这里,标量值是除数,它除以被除数数组中的每个元素,如下所示:

ans[0] = 2/5 = 0.4
ans[1] = 36/5 = 7.2
ans[2] = 10/5 = 2
ans[3] = 4/5 = 0.8
ans[4] = 20/5 = 4

当两个输入数组都是一维时

import numpy as np
 
a = [5, 30, 12, 36, 11]
b = [2, 5, 6, 7, 10]
# using the true_divide function to perform element-wise division
ans = np.true_divide(a, b)
 
print("a =", a, "\nb =", b)
print("Result =", ans)

输出:

a = [5, 30, 12, 36, 11]
b = [2, 5, 6, 7, 10]
Result = [2.5        6.         2.         5.14285714 1.1       ]

这里, a中的每个元素除以b中的相应元素,输出计算如下:

ans[0] = a[0]/b[0] = 5/2 = 2.5
ans[1] = a[1]/b[1] = 30/5 = 6
ans[2] = a[2]/b[2] = 12/6 = 2
ans[3] = a[3]/b[3] = 36/7 = 5.14285714
ans[4] = a[4]/b[4] = 11/10 = 1.1

当两个输入数组都是二维时

import numpy as np
 
a = [[25, 23], [12, 18]]
b = [[5, 6], [4, 5]]
# using the true_divide function to perform element-wise division
ans = np.true_divide(a, b)
 
print("a =", a, "\nb =", b)
print("Result =\n", ans)

输出:

a = [[25, 23], [12, 18]]
b = [[5, 6], [4, 5]]
Result =
 [[5.         3.83333333]
 [3.         3.6       ]]

与上面的例子类似,

ans[0][0] = a[0][0]/b[0][0] = 25/5 = 5
ans[0][1] = a[0][1]/b[0][1] = 23/6 = 3.83333333
 
ans[1][0] = a[1][0]/b[1][0] = 12/4 = 3
ans[1][1] = a[1][1]/b[1][1] = 18/5 = 3.6

true_divide(//)和floor_divide(/)的比较

import numpy as np
 
a = [5, 30, 12, 36, 11]
b = [2, 5, 6, 7, 10]
# using the true_divide and floor_divide functions to perform element-wise division
ans_true_divide = np.true_divide(a, b)
ans_floor_divide = np.floor_divide(a, b)
 
print("a =", a, "\nb =", b)
print("Result of true divide =", ans_true_divide)
print("Result of floor divide =", ans_floor_divide)

输出:

a = [5, 30, 12, 36, 11]
b = [2, 5, 6, 7, 10]
Result of true divide = [2.5        6.         2.         5.14285714 1.1       ]
Result of floor divide = [2 6 2 5 1]

这里输出的差异在于,在下限除法的输出中,实际商的下限作为输出呈现,这与真正的除法不同,在真除法中,实际商包含在输出中。


结论

就这样!在本教程中,我们了解了 Numpy true_divide 方法,并使用该方法练习了不同类型的示例。  

如果您想了解有关 NumPy 的更多信息,请随时阅读我们的 NumPy 教程


参考