第六章. 图解数组计算模块NumPy
NumPy中包含了大量的数学运算的函数。
函数 | 说明 |
---|---|
add() | 数组的加 |
subtract() | 数组的减 |
sultiply() | 数组的乘 |
divide() | 数组的除 |
abs() | 取数组中各元素的绝对值 |
sqrt() | 计算数组中各元素的平方根 |
square() | 计算数组中各元素的平方 |
log() | 计算数组中各元素的自然对数 |
log10() | 计算数组中各元素以10为底的对数 |
log2() | 计算数组中各元素以2为底的对数 |
reciprocal() | 计算数组中各元素的倒数 |
power() | 第一个数组中的元素作为底数,第二个数组中的元素作为第一组元素的幂 |
mod() | 计算数组之间相应元素相除后的余数 |
around() | 计算数组中各元素指定小数位数的四舍五入值 |
ceil() | 计算数组中各元素向上取整 |
floor() | 计算数组中各元素向下取整 |
sin() | 计算数组中角度的正弦值 |
cos() | 计算数组中角度的余弦值 |
tan() | 计算数组中角度的正切值 |
arcsin() | 计算数组中角度的反正弦值,返回值以弧度为单位 |
arccos() | 计算数组中角度的反余弦值,返回值以弧度为单位 |
arctan() | 计算数组中角度的反正切值,返回值以弧度为单位 |
degrees() | 弧度转换为角度 |
modf() | 将数组中各元素的小数和整数部分分割为两个独立的数组 |
exp() | 计算数组中各元素的指数值 |
sign() | 计算数组中各元素的符号值,例如-3(-),0,+3(+) |
maximum()、fmax() | 计算数组元素的最大值 |
minimum()、fmin() | 计算数组元素的最小值 |
copysign(a,b) | 将数组b中各元素的符号赋值给与元素a对应的元素 |
import numpy as np
# 1.算术函数
n1 = np.arange(6).reshape(2, 3)
n2 = np.arange(6, 12).reshape(2, 3)
# 加
n = np.add(n1, n2)
# 减
n = np.subtract(n1, n2)
# 乘
n = np.multiply(n1, n2)
# 除
n = np.divide(n1, n2)
# 倒数
n1 = np.arange(1, 7, dtype=float).reshape(2, 3)
n = np.reciprocal(n1) # 分母不能为0
# 求幂
n1 = np.arange(6).reshape(2, 3)
n2 = np.arange(6).reshape(2, 3)
n = np.power(n1, n2)
#取余
n1=np.random.randint(1,10,size=(2,3))
n2=np.random.randint(1,10,size=(2,3))
n=np.mod(n1,n2)
import numpy as np
# 1.舍入函数
n1 = np.array([1.1, 2.5, 3.9])
# around函数:四舍五入
n = np.around(n1)
# ceil函数:向上取整
n = np.ceil(n1)
# floor函数:向下取整
n = np.floor(n1)
import numpy as np
# 正弦函数
n1 = np.arange(0, 100, 30)
sin = np.sin(n1 * np.pi / 180) # 角度转换为弧度
inv = np.arcsin(sin) # 角度的反正弦,输出对应的弧度制
deg = np.degrees(inv) # 弧度转换成角度
函数 | 说明 |
---|---|
sum() | 对数组中的元素或某行某列的元素求和 |
cumsum() | 所有数组元素累计求和 |
cumprod() | 所有数组元素累计求积 |
mean() | 计算平均值 |
min() | 计算数组的最小值 |
max() | 计算数组的最大值 |
average() | 计算加权平均值 |
median() | 计算数组中元素的中位数 |
var() | 计算方差 |
std() | 计算标准差 |
eg() | 对数组第二维度的数据求平均 |
argmin() | 计算数组最小值的下标 |
argmax() | 计算数组最大值的下标 |
unravel_index() | 根据数组形状将一维下标转换成多维下标 |
ptp() | 计算数组最大值与最小值的差 |
import numpy as np
n1 = np.arange(6).reshape(2, 3)
# 求和:sum
n = np.sum(n1) # 数组元素求和
n = np.sum(n1, axis=0) # 按行求和
n = np.sum(n1, axis=1) # 按列求和
# 求均值:mean
n = np.mean(n1)
n = np.mean(n1, axis=0) # 按行求均值
n = np.mean(n1, axis=1) # 按列求均值
# 最大值:max
n = np.max(n1)
n = np.max(n1, axis=0) # 按行求均值
n = np.max(n1, axis=1) # 按列求均值
# 最小值:min
n = np.min(n1)
n = np.min(n1, axis=0) # 按行求均值
n = np.min(n1, axis=1) # 按列求均值
# 加权均值:average
n1 = np.arange(1, 6)
n2 = n1.copy()
n = np.average(n1, weights=n2)
# 中位数:median
n1 = np.random.randint(1, 100, 7)
n = np.median(n1)
# 方差:var
n1 = np.random.randint(1, 10, 7)
n = np.var(n1)
# 标准差:std
n1 = np.random.randint(1, 10, 7)
n = np.std(n1)
对数组元素进行排序。
使用soft函数进行排序,参数axis指定按行排序还是按列排序
import numpy as np
n1 = np.random.randint(20, size=(2, 3))
# sort排序
n = np.sort(n1) # 数组排序(默认按列排序)
n = np.sort(n1, axis=0) # 按行排序
n = np.sort(n1, axis=1) # 按列排序
使用argsort函数对数组进行排序,返回升序排序之后数组的索引值。
import numpy as np
n1 = np.random.randint(20, size=(2, 3))
# argsort排序
n = np.argsort(n1) # 数组排序(默认按列排序)
n = np.argsort(n1, axis=0) # 按行排序
n = np.argsort(n1, axis=1) # 按列排序
用于对多个序列进行排序,返回排序之后数组的索引值,可以把他当作是对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列。
import numpy as np
# 某高校,根据总成绩录取学生,当总成绩相同时,数学成绩高的优先录取,当总成绩,数学成绩相同时,英语成绩高的优先录取
math = np.random.randint(80, 150, 5)
english = np.random.randint(80, 150, 5)
total_score = np.random.randint(615, 620, 5)
sort = np.lexsort((english, math, total_score))#排序后的索引值
n = np.array([[english[i], math[i], total_score[i]] for i in sort])#排序后的数组