Numpy 简单算法

Numpy 简单算法

你可以直接在 NumPy 数组中使用算术运算符 + - * /,但本节讨论了它的一个扩展,其中的函数可以接受任何类似数组的对象,例如列表、元组等,并 有条件 地执行算术。

算术条件:意味着我们可以定义算术运算应该发生的条件。

所有讨论的算术函数都采用 where 参数,我们可以在其中指定该条件。


add() 函数对两个数组的内容求和,并在新数组中返回结果。

实例

将 arr1 中的值加上 arr2 对应的值:

  1. import numpy as np
  2. arr1 = np.array([10, 11, 12, 13, 14, 15])
  3. arr2 = np.array([20, 21, 22, 23, 24, 25])
  4. newarr = np.add(arr1, arr2)
  5. print(newarr)

上面的示例将返回 [30 32 34 36 38 40],这是 10+20、11+21、12+22 等的总和。


subtract() 函数将一个数组中的值与另一个数组中的值相减,并在新数组中返回结果。

实例

从 arr1 中的值中减去 arr2 中的值:

  1. import numpy as np
  2. arr1 = np.array([10, 20, 30, 40, 50, 60])
  3. arr2 = np.array([20, 21, 22, 23, 24, 25])
  4. newarr = np.subtract(arr1, arr2)
  5. print(newarr)

上面的示例将返回 [-10-18 17 26 35],这是 10-20、20-21、30-22 等的结果。


multiply() 函数将一个数组中的值与另一个数组中的值相乘,并在新数组中返回结果。

实例

将 arr1 中的值与 arr2 中的值相乘:

  1. import numpy as np
  2. arr1 = np.array([10, 20, 30, 40, 50, 60])
  3. arr2 = np.array([20, 21, 22, 23, 24, 25])
  4. newarr = np.multiply(arr1, arr2)
  5. print(newarr)

上面的示例将返回 [200 420 660 920 1200 1500],这是 10*20、20*21、30*22 等的结果。


divide() 函数将一个数组中的值与另一个数组中的值相除,并在新数组中返回结果。

实例

将 arr1 中的值除以 arr2 中的值:

  1. import numpy as np
  2. arr1 = np.array([10, 20, 30, 40, 50, 60])
  3. arr2 = np.array([3, 5, 10, 8, 2, 33])
  4. newarr = np.divide(arr1, arr2)
  5. print(newarr)

上面的示例将返回 [3.33333333 4.3.5.25.1.81818182],这是 10/3、20/5、30/10 等的结果。


power() 函数将第一个数组的值做第二个数组的次方,并在新数组中返回结果。

实例

将 arr1 中的值做 arr2 中的值的次方:

  1. import numpy as np
  2. arr1 = np.array([10, 20, 30, 40, 50, 60])
  3. arr2 = np.array([3, 5, 6, 8, 2, 33])
  4. newarr = np.power(arr1, arr2)
  5. print(newarr)

上面的示例将返回 [1000 32000000 729000000 6553600000000 25000],这是 10*10*10、20*20*20*20、30*30*30*30*30*30 等的结果。


mod()remainder() 函数都返回第一个数组中与第二个数组中的值相对应的余数,并在新数组中返回结果。

实例

返回余数:

  1. import numpy as np
  2. arr1 = np.array([10, 20, 30, 40, 50, 60])
  3. arr2 = np.array([3, 7, 9, 8, 2, 33])
  4. newarr = np.mod(arr1, arr2)
  5. print(newarr)

上面的示例将返回 [1 6 3 0 0 27],当您用 10(10%3)除以 3 取余,用 20(20%7)除以 7 取余,用 30(30%9)除以 9 取余等等。

你用 remainder() 函数也能得到同样的结果:

实例

返回余数:

  1. import numpy as np
  2. arr1 = np.array([10, 20, 30, 40, 50, 60])
  3. arr2 = np.array([3, 7, 9, 8, 2, 33])
  4. newarr = np.remainder(arr1, arr2)
  5. print(newarr)

商与模

divmod() 函数返回商和模。返回值是两个数组,第一个数组包含商,第二个数组包含模。

实例

返回商与模:

  1. import numpy as np
  2. arr1 = np.array([10, 20, 30, 40, 50, 60])
  3. arr2 = np.array([3, 7, 9, 8, 2, 33])
  4. newarr = np.divmod(arr1, arr2)
  5. print(newarr)

上面的示例将返回:(array([3, 2, 3, 5, 25, 1]), array([1, 6, 3, 0, 0, 27]))

第一个数组表示商(10 除以 3、20 除以 7、30 除以 9 时的整数值,等等)。

第二个数组表示相同除法后的余数。


绝对值

absolute()abs() 函数在元素方面执行相同的绝对运算,但我们应该使用 absolute() 避免与 python 的内置方法 math.abs() 混淆

实例

返回商与模:

  1. import numpy as np
  2. arr = np.array([-1, -2, 1, 2, 3, -4])
  3. newarr = np.absolute(arr)
  4. print(newarr)

以上例子返回结果: [1 2 1 2 3 4] 。

分类导航