您好,欢迎来到Numpy true_divide教程 。在本教程中,我们将学习 NumPy true_divide() 方法,并看到许多相关示例。那么让我们开始吧!
另请阅读:NumPy Floor_divide – 完整指南
什么是 NumPy true_divide?
true_divide()
是NumPy 中的一个函数 ,它将一个数组中的元素除以另一个数组中的元素(逐元素),并返回一个包含答案的数组,即每个逐元素除法的商。
如果x1和x2是两个数组,则将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 教程。