Numpy 一维数组与二维数组加减操作
在numpy中,数组的加减是非常简单的。我们可以直接使用numpy.ndarray下的add()和subtract()方法来进行数组加减操作。但是,当我们有一个一维数组与一个二维数组进行加减操作时,却需要特殊的处理方法。
阅读更多:Numpy 教程
一维数组与一维数组加减
首先,我们来看一维数组与一维数组的加减。这是较为简单的操作,我们可以直接使用numpy.add()和numpy.subtract()方法。
下面是一个示例代码:
import numpy as np
arr_1 = np.array([1, 2, 3, 4, 5])
arr_2 = np.array([5, 4, 3, 2, 1])
arr_add = np.add(arr_1, arr_2)
arr_subtract = np.subtract(arr_1, arr_2)
print("Addition Result:", arr_add)
print("Subtraction Result:", arr_subtract)
运行结果:
Addition Result: [6 6 6 6 6]
Subtraction Result: [-4 -2 0 2 4]
二维数组与二维数组加减
接下来,我们来看二维数组与二维数组的加减。这也是较为简单的操作,我们同样可以直接使用numpy.add()和numpy.subtract()方法。
下面是一个示例代码:
import numpy as np
arr_1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr_2 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])
arr_add = np.add(arr_1, arr_2)
arr_subtract = np.subtract(arr_1, arr_2)
print("Addition Result:\n", arr_add)
print("Subtraction Result:\n", arr_subtract)
运行结果:
Addition Result:
[[10 10 10]
[10 10 10]
[10 10 10]]
Subtraction Result:
[[-8 -6 -4]
[-2 0 2]
[ 4 6 8]]
二维数组与一维数组加减
最后,我们来看二维数组与一维数组的加减。这是较为复杂的操作,我们需要注意维度的问题。
在这种情况下,我们需要将一维数组与二维数组进行扩展,使得它们的维度相同。这里我们可以使用numpy.newaxis来添加新的维度。
下面是一个示例代码:
import numpy as np
arr_1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr_2 = np.array([9, 8, 7])
arr_add = arr_1 + arr_2[np.newaxis, :]
arr_subtract = arr_1 - arr_2[np.newaxis, :]
print("Addition Result:\n", arr_add)
print("Subtraction Result:\n", arr_subtract)
运行结果:
Addition Result:
[[10 10 10]
[13 13 13]
[16 16 16]]
Subtraction Result:
[[-8 -6 -4]
[-5 -3 -1]
[-2 0 2]]
以上代码中,我们在arr_2中添加了一个新的轴,并且将其转置,使得新生成的数组大小为(1, 3)。然后,我们就可以将其和arr_1进行计算。
总结
在numpy中,数组的加减操作非常简单,我们可以直接使用numpy.ndarray下的add()和subtract()方法来进行操作。但当我们需要进行一维数组与二维数组的加减时,需要注意维度的问题,我们需要将一维数组扩展成二维数组后,使得维度相同,然后才能进行计算。
极客笔记