基本算术运算之一是将给定实体从另一个实体中减去。尽管这可能是一个不涉及Python 等编程语言的计算能力的简单方法,但在处理一次性数据时,人们可能会低估此操作。
本文着手探索使用numpy库中的minus()函数执行减法的不同方差,如下所列。
- 两个标量相减
- 两个数组相减
- 一个数组和一个标量相减
- 不同大小的数组相减
- 选择性减法
另请阅读:Numpy dot() – 向量、Numpy 和计算点积的完整指南
numpy.subtract() 的语法
在开始解决示例之前,让我们首先了解该函数的语法。
numpy.subtract(x1, x2, where = True , dtype = None ) |
在哪里,
- x1、x2 – 是要执行减法的标量或一维数组或二维数组
- where – 用于指定数组中仅通过输入 TRUE 进行减法的位置,而其他实体则免于被减法
- dtype – 用于指定要作为结果返回的数据类型
在开始减去实体之前,使用以下代码导入numpy库。
import numpy as np |
使用 numpy.subtract() 减去两个标量
标量是那些没有任何方向的量(你的学校物理有印象吗?)意味着它们只是一个数字,与拥有数字集合的数组不同。现在让我们使用subtract()函数来减去两个数字。
a = 10 b = 5 np.subtract(a,b) |
使用 numpy.subtract() 减去两个数组
现在我们将继续减去一对相同大小的一维数组。是的!为了使subtract()函数按预期执行,进行减法的数组必须具有相同的大小。可以使用array( )函数馈送数组,如下所示。
ar_1 = np.array([ 2 , 1 , 0 ]) ar_2 = np.array([ 4 , 3 , 5 ]) |
现在要使用以下代码从数组 1 中减去数组 2。
np.subtract(ar_1, ar_2) |
还可以使用减号运算符 (-) 使用以下代码执行减法。
ar_1 - ar_2 |
使用 numpy.subtract() 减去一个数组和一个标量:
虽然检查应该相减的两个数组的大小是否相同很重要,但Python为我们提供了从数组中减去标量的灵活性。要理解这里发生的事情,我们应该知道这是如何执行的。
将从数组的每个元素中删除提供的标量并提供结果。让我们从创建一个数组开始,这次是二维的。
ar_3 = np.array([[ 2 , 1 , 0 ],[ 3 , 4 , 5 ],[ 6 , 7 , 8 ]]) |
完成后,将部署minus()函数以从上述数组中的每个元素中删除“10”。
np.subtract(ar_3, 10 ) |
使用 numpy.subtract() 减去不同大小的数组
这可能与本文前面给出的声明相矛盾,即使用minus()函数时两个数组应该具有相同的大小。嗯,这仍然是事实,但有一个例外!
Python 允许对两个不同大小的数组进行减法,前提是两个数组中的列数相等。因此,让我们创建两个符合这一要求的数组。
ar_2 = np.array([ 4 , 3 , 5 ]) ar_3 = np.array([[ 2 , 1 , 0 ],[ 3 , 4 , 5 ],[ 6 , 7 , 8 ]]) |
现在可以调用subtract()函数来做它的事情了。
np.subtract(ar_3, ar_2) |
使用 numpy.subtract() 进行选择性减法
在此技术中,应使用subtract()函数的where部分。如前所述,这将有选择地仅在函数指定为 TRUE 的位置进行减去,并用要减去的数组的实体替换其他位置。
ar_3 = np.array([[ 2 , 1 , 0 ],[ 3 , 4 , 5 ],[ 6 , 7 , 8 ]]) ar_4 = np.array([[ 0 , 9 , 10 ],[ 11 , 3 , 9 ],[ 7 , 4 , 7 ]]) R = np.subtract(ar_3,ar_4,where = [ False , True , False ]) |
很明显,结果数组的第一和第三位置的元素被替换为 ar_4 的元素,而按照指示在第二位置执行减法。
结论:
现在我们已经到了本文的结尾,希望它已经详细说明了如何使用 Python 编程来减去实体。这是另一篇文章,详细介绍了如何在 Python 中乘法实体。AskPython中还有许多其他有趣且内容丰富的文章,可能对那些希望提高 Python 水平的人有很大帮助。当你享受这些的时候,hasta luego!