Numpy.subtract():如何在 Python 中使用 NumPy 进行数字减法?

基本算术运算之一是将给定实体从另一个实体中减去。尽管这可能是一个不涉及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)
从 2D 数组中减去标量

使用 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