python——numpy (二)
2021-06-03 08:04
标签:display die lin 组元 向量 absolute pen 因式分解 color 1. 三角函数 2. 数值修约 3. 求和、求积、差分 4. 指数、对数 5.算法运算 6. 矩阵、向量积 7.数学运算 7. 代数运算 索引 数组切片: 排序 搜素与计数 python——numpy (二) 标签:display die lin 组元 向量 absolute pen 因式分解 color 原文地址:https://www.cnblogs.com/-hao-/p/14674816.htmlnumpy数学函数
‘‘‘
numpy.sin(x):三角正弦。
numpy.cos(x):三角余弦。
numpy.tan(x):三角正切。
numpy.arcsin(x):三角反正弦。
numpy.arccos(x):三角反余弦。
numpy.arctan(x):三角反正切。
numpy.hypot(x1,x2):直角三角形求斜边。
numpy.degrees(x):弧度转换为度。
numpy.radians(x):度转换为弧度。
numpy.deg2rad(x):度转换为弧度。作用与上radians()相同
numpy.rad2deg(x):弧度转换为度。作用与上degrees()相同
‘‘‘
import numpy as np
#注意,这里的度,用np.pi/180表示,表示多少度,乘以倍数即可
print(np.sin(30)) #sin(30) #sin(30)
‘‘‘-0.9880316240928618‘‘‘
print(np.sin(30*np.pi/180)) #sin(30度)
‘‘‘0.49999999999999994‘‘‘
print(np.hypot(3,4))#:直角三角形求斜边。
‘‘‘5.0‘‘‘
print(np.rad2deg(np.pi)) # 弧度转换为度
‘‘‘180.0‘‘‘
print(np.deg2rad(180.0)) # 度转换为弧度。
‘‘‘3.141592653589793‘‘‘
‘‘‘
numpy.around(a):平均到给定的小数位数。
numpy.round_(a):将数组舍入到给定的小数位数。
numpy.rint(x):修约到最接近的整数。
numpy.fix(x, y):向 0 舍入到最接近的整数。
numpy.floor(x):返回输入的底部(标量 x 的底部是最大的整数 i)。
numpy.ceil(x):返回输入的上限(标量 x 的底部是最小的整数 i).
numpy.trunc(x):返回输入的截断值。
‘‘‘
import numpy as np
a=[-3.14878,-2.48784,-1.4878,0.478784,1.4878,2.78779,3.7897848]
print(np.around(a,2)) #保留2位小数
‘‘‘[-3.15 -2.49 -1.49 0.48 1.49 2.79 3.79]‘‘‘
print(np.trunc(a)) #返回整数,丢弃小数部分
‘‘‘[-3. -2. -1. 0. 1. 2. 3.]‘‘‘
print(np.fix(a)) #向0舍入到最接近的整数
‘‘‘[-3. -2. -1. 0. 1. 2. 3.]‘‘‘
print(np.rint(a)) #返回最接近的整数
‘‘‘[-3. -2. -1. 0. 1. 3. 4.]‘‘‘
print(np.floor(a))#向下最接近的整数
‘‘‘[-4. -3. -2. 0. 1. 2. 3.]‘‘‘
print(np.ceil(a))#向上最接近的整数
‘‘‘[-3. -2. -1. 1. 2. 3. 4.]‘‘‘
‘‘‘不常用,有需要时,自行百度其详细使用方法
numpy.prod(a, axis, dtype, keepdims):返回指定轴上的数组元素的乘积。
numpy.sum(a, axis, dtype, keepdims):返回指定轴上的数组元素的总和。
numpy.nanprod(a, axis, dtype, keepdims):返回指定轴上的数组元素的乘积, 将 NaN 视作 1。
numpy.nansum(a, axis, dtype, keepdims):返回指定轴上的数组元素的总和, 将 NaN 视作 0。
numpy.cumprod(a, axis, dtype):返回沿给定轴的元素的累积乘积。
numpy.cumsum(a, axis, dtype):返回沿给定轴的元素的累积总和。
numpy.nancumprod(a, axis, dtype):返回沿给定轴的元素的累积乘积, 将 NaN 视作 1。
numpy.nancumsum(a, axis, dtype):返回沿给定轴的元素的累积总和, 将 NaN 视作 0。
numpy.diff(a, n, axis):计算沿指定轴的第 n 个离散差分。
numpy.ediff1d(ary, to_end, to_begin):数组的连续元素之间的差异。
numpy.gradient(f):返回 N 维数组的梯度。
numpy.cross(a, b, axisa, axisb, axisc, axis):返回两个(数组)向量的叉积。
numpy.trapz(y, x, dx, axis):使用复合梯形规则沿给定轴积分。
‘‘‘
‘‘‘
numpy.exp(x):计算输入数组中所有元素的指数。
numpy.log(x):计算自然对数。
numpy.log10(x):计算常用对数。
numpy.log2(x):计算二进制对数。
‘‘‘
‘‘‘可用于数组与单个元素
numpy.add(x1, x2):对应元素相加。
numpy.reciprocal(x):求倒数 1/x。
numpy.negative(x):求对应负数。
numpy.multiply(x1, x2):求解乘法。
numpy.divide(x1, x2):相除 x1/x2。
numpy.power(x1, x2):类似于 x1^x2。
numpy.subtract(x1, x2):减法。
numpy.fmod(x1, x2):返回除法的元素余项。
numpy.mod(x1, x2):返回余项。
numpy.modf(x1):返回数组的小数和整数部分。
numpy.remainder(x1, x2):返回除法余数。
‘‘‘
‘‘‘
numpy.dot(a, b):求解两个数组的点积。
numpy.vdot(a, b):求解两个向量的点积。
numpy.inner(a, b):求解两个数组的内积。
numpy.outer(a, b):求解两个向量的外积。
numpy.matmul(a, b):求解两个数组的矩阵乘积。
numpy.tensordot(a, b):求解张量点积。
numpy.kron(a, b):计算 Kronecker 乘积。
‘‘‘
import numpy as np
a = [[1, 2, 3], [4, 5, 6]]
b = [[2, 2], [3, 3], [4, 4]]
print(np.matmul(a, b)) #求矩阵a*b积
‘‘‘
[[20 20]
[47 47]]
‘‘‘
‘‘‘
numpy.angle(z, deg):返回复参数的角度。
numpy.real(val):返回数组元素的实部。
numpy.imag(val):返回数组元素的虚部。
numpy.conj(x):按元素方式返回共轭复数。
numpy.convolve(a, v, mode):返回线性卷积。
numpy.sqrt(x):平方根。
numpy.cbrt(x):立方根。
numpy.square(x):平方。
numpy.absolute(x):绝对值, 可求解复数。
numpy.fabs(x):绝对值。
numpy.sign(x):符号函数。
numpy.maximum(x1, x2):最大值。
numpy.minimum(x1, x2):最小值。
numpy.nan_to_num(x):用 0 替换 NaN。
numpy.interp(x, xp, fp, left, right, period):线性插值。
‘‘‘
‘‘‘
numpy.linalg.cholesky(a):Cholesky 分解。
numpy.linalg.qr(a ,mode):计算矩阵的 QR 因式分解。
numpy.linalg.svd(a ,full_matrices,compute_uv):奇异值分解。
numpy.linalg.eig(a):计算正方形数组的特征值和右特征向量。
numpy.linalg.eigh(a, UPLO):返回 Hermitian 或对称矩阵的特征值和特征向量。
numpy.linalg.eigvals(a):计算矩阵的特征值。
numpy.linalg.eigvalsh(a, UPLO):计算 Hermitian 或真实对称矩阵的特征值。
numpy.linalg.norm(x ,ord,axis,keepdims):计算矩阵或向量范数。
numpy.linalg.cond(x ,p):计算矩阵的条件数。
numpy.linalg.det(a):计算数组的行列式。
numpy.linalg.matrix_rank(M ,tol):使用奇异值分解方法返回秩。
numpy.linalg.slogdet(a):计算数组的行列式的符号和自然对数。
numpy.trace(a ,offset,axis1,axis2,dtype,out):沿数组的对角线返回总和。
numpy.linalg.solve(a, b):求解线性矩阵方程或线性标量方程组。
numpy.linalg.tensorsolve(a, b ,axes):为 x 解出张量方程 a x = b
numpy.linalg.lstsq(a, b ,rcond):将最小二乘解返回到线性矩阵方程。
numpy.linalg.inv(a):计算逆矩阵。
numpy.linalg.pinv(a ,rcond):计算矩阵的(Moore-Penrose)伪逆。
numpy.linalg.tensorinv(a ,ind):计算 N 维数组的逆。
‘‘‘
数组索引与切片
import numpy as np
#TODO 1 数组索引
a = np.arange(10) # 生成一维数组 0-9
print(a)
‘‘‘[0 1 2 3 4 5 6 7 8 9]‘‘‘
print(a[1]) #获取索引值为 1 的数据。
‘‘‘1‘‘‘
print(a[[1, 2, 3]]) #获取索引值为 1,2,3 的数据。
‘‘‘[1 2 3]‘‘‘
a = np.arange(20).reshape(4, 5) #生成4行5列二维数组
print(a)
‘‘‘
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]‘‘‘
print(a[1,2]) #获取第二行,第三列的数据
‘‘‘7‘‘‘
#比较与列表的区别
b=a.tolist()
print(b[1][2])#获取第二行,第三列的数据
‘‘‘7‘‘‘
‘和list 切片操作是一样的,[起始索引:截至索引:步长]‘
import numpy as np
a = np.arange(10) #一维
print(a)
‘‘‘[0 1 2 3 4 5 6 7 8 9]‘‘‘
print(a[1:5])
‘‘‘[1 2 3 4]‘‘‘
print(a[0:-1:2])
‘‘‘[0 2 4 6 8]‘‘‘
a = np.arange(20).reshape(4, 5)#二维
print(a)
‘‘‘
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]‘‘‘
print(a[0:3, 2:4]) #(行切片,列切片)
‘‘‘
[[ 2 3]
[ 7 8]
[12 13]]
‘‘‘
"""
numpy.sort方法对多维数组元素进行排序。其方法为:
numpy.sort(a, axis=-1, kind=‘quicksort‘, order=None)
a:数组。
axis:要排序的轴。如果为None,则在排序之前将数组铺平。默认值为 -1,沿最后一个轴排序。
kind:{‘quicksort‘,‘mergesort‘,‘heapsort‘},排序算法。默认值为 quicksort
numpy.lexsort(keys ,axis):使用多个键进行间接排序。
numpy.argsort(a ,axis,kind,order):沿给定轴执行间接排序。
numpy.msort(a):沿第 1 个轴排序。
numpy.sort_complex(a):针对复数排序。
"""
import numpy as np
a = np.random.rand(20).reshape(4, 5)
# print(a)
print(np.sort(a))
‘‘‘
[[0.16084851 0.46068528 0.54154642 0.919661 0.94382193]
[0.11625906 0.26092216 0.40612362 0.69805412 0.92098232]
[0.65406008 0.66565906 0.70732966 0.77505101 0.97876487]
[0.11915551 0.50262157 0.58882585 0.72087149 0.82008241]]
‘‘‘
‘‘‘
argmax(a ,axis,out):返回数组中指定轴的最大值的索引。
nanargmax(a ,axis):返回数组中指定轴的最大值的索引,忽略 NaN。
argmin(a ,axis,out):返回数组中指定轴的最小值的索引。
nanargmin(a ,axis):返回数组中指定轴的最小值的索引,忽略 NaN。
argwhere(a):返回数组中非 0 元素的索引,按元素分组。
nonzero(a):返回数组中非 0 元素的索引。
flatnonzero(a):返回数组中非 0 元素的索引,并铺平。
where(条件,x,y):根据指定条件,从指定行、列返回元素。
searchsorted(a,v ,side,sorter):查找要插入元素以维持顺序的索引。
extract(condition,arr):返回满足某些条件的数组的元素。
count_nonzero(a):计算数组中非 0 元素的数量。
‘‘‘
import numpy as np
a = np.random.randint(0, 10, 20)
print(a)
‘‘‘[4 2 0 9 4 6 2 6 5 6 9 9 5 5 8 8 7 9 2 7]‘‘‘
print(np.argmax(a)) #返回最大值的索引
‘‘‘3‘‘‘
print(np.argmin(a)) #返回最小值的索引
‘‘‘2‘‘‘
print(np.nonzero(a)) #返回不为0的索引
‘‘‘(array([ 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19], dtype=int64),)‘‘‘
print(np.count_nonzero(a))#返回不为0的数目
‘‘‘19‘‘‘
print(np.extract(a>3,a)) #返回a中元素大于3的数组
‘‘‘[4 9 4 6 6 5 6 9 9 5 5 8 8 7 9 7]‘‘‘
print(np.where(a>5)) #返回a中元素大于5所在的索引
‘‘‘(array([ 3, 5, 7, 9, 10, 11, 14, 15, 16, 17, 19], dtype=int64),)‘‘‘
上一篇:Java数据类型详解