NumPy 算术运算
NumPy是一个开源的Python库,用于执行阵列计算(矩阵运算)。它是用C语言实现的库的一个封装器,用于执行一些三角、代数和统计操作。NumPy对象可以很容易地转换为其他类型的对象,如Pandas的数据框架和tensorflow的张量。Python list可用于数组计算,但它比NumPy慢得多。NumPy使用矢量化实现了它的快速实现。NumPy数组的一个重要特点是,开发者可以用一个命令对每个元素进行相同的数学运算。
让我们了解一下使用NumPy的算术运算。
加
import numpy as np
# Defining both the matrices
a = np.array([5, 72, 13, 100])
b = np.array([2, 5, 10, 30])
# Performing addition using arithmetic operator
add_ans = a+b
print(add_ans)
# Performing addition using numpy function
add_ans = np.add(a, b)
print(add_ans)
# The same functions and operations can be used for multiple matrices
c = np.array([1, 2, 3, 4])
add_ans = a+b+c
print(add_ans)
add_ans = np.add(a, b, c)
print(add_ans)
输出
[ 7 77 23 130]
[ 7 77 23 130]
[ 8 79 26 134]
[ 8 79 26 134]
我们可以看到矩阵的形状是一样的,如果它们不一样,Numpy会尝试广播,如果可能的话。读者可以看到,同样的操作(加法)可以用算术运算(+)以及numpy函数(np.add)完成。
减
import numpy as np
# Defining both the matrices
a = np.array([5, 72, 13, 100])
b = np.array([2, 5, 10, 30])
# Performing subtraction using arithmetic operator
sub_ans = a-b
print(sub_ans)
# Performing subtraction using numpy function
sub_ans = np.subtract(a, b)
print(sub_ans)
输出
[ 3 67 3 70]
[ 3 67 3 70]
用户还可以用一个矩阵和一个常数进行广播
import numpy as np
# Defining both the matrices
a = np.array([5, 72, 13, 100])
b = np.array([2, 5, 10, 30])
# Performing subtraction using arithmetic operator
sub_ans = a-b-1
print(sub_ans)
# Performing subtraction using numpy function
sub_ans = np.subtract(a, b, 1)
print(sub_ans)
输出
[ 2 66 2 69]
[ 2 66 2 69]
乘
import numpy as np
# Defining both the matrices
a = np.array([5, 72, 13, 100])
b = np.array([2, 5, 10, 30])
# Performing multiplication using arithmetic operator
mul_ans = a*b
print(mul_ans)
# Performing multiplication using numpy function
mul_ans = np.multiply(a, b)
print(mul_ans)
输出
[ 10 360 130 3000]
[ 10 360 130 3000]
除
import numpy as np
# Defining both the matrices
a = np.array([5, 72, 13, 100])
b = np.array([2, 5, 10, 30])
# Performing division using arithmetic operators
div_ans = a/b
print(div_ans)
# Performing division using numpy functions
div_ans = np.divide(a, b)
print(div_ans)
输出
[ 2.5 14.4 1.3 3.33333333]
[ 2.5 14.4 1.3 3.33333333]
在NumPy中还有无数的其他函数,让我们逐一来看看其中的一些。
mod()和power()函数
示例
# Performing mod on two matrices
mod_ans = np.mod(a, b)
print(mod_ans)
#Performing remainder on two matrices
rem_ans=np.remainder(a,b)
print(rem_ans)
# Performing power of two matrices
pow_ans = np.power(a, b)
print(pow_ans)
输出
[ 1 2 3 10]
[ 1 2 3 10]
[ 25 1934917632 137858491849
1152921504606846976]
一些汇总和统计功能
示例
# Getting mean of all numbers in 'a'
mean_a = np.mean(a)
print(mean_a)
# Getting average of all numbers in 'b'
mean_b = np.average(b)
print(mean_b)
# Getting sum of all numbers in 'a'
sum_a = np.sum(a)
print(sum_a)
# Getting variance of all number in 'b'
var_b = np.var(b)
print(var_b)
输出
47.5
11.75
190
119.1875