数学函数
import numpy as np
# 三角函数:sin(),cos(),tan()
print(np.sin(30 * np.pi / 180))
print(np.cos(30 * np.pi / 180))
print(np.tan(30 * np.pi / 180))
# 舍入函数
a = np.array([1.11, 2.44, 3.66, 4.88])
#四舍五入around()
print(np.around(a, decimals=1))
#向下取整floor()
print(np.floor(a))
#向上取整ceil()
print(np.ceil(a))
算术函数
import numpy as np
#算术函数:加:add() 减:subtract() 乘:multiply() 除:divide()
a=np.array([2,5,6],dtype=float)
b=np.array([7,3,9])
print(np.add(a,b))
print(np.subtract(a,b))
print(np.multiply(a,b))
print(np.divide(a,b))
#返回倒数reciprocal()
print(np.reciprocal(a))
#power()计算一个数值的整数次幂。这个函数接受两个参数:底数和指数,返回底数的指数次幂的结果。
print(np.power(a,2))
#mod()取模
print(np.power(a,b))
副本与视图
-
副本(Copy):
- 当你创建一个数组的副本时,你会得到一个新的数组对象,它有自己的内存空间。对副本的修改不会影响到原始数组。
- 副本可以用来进行数据的备份,或者在不改变原始数据的情况下进行数据操作。
-
视图(View):
- 视图是原始数组的一个引用,它与原始数组共享相同的内存空间。因此,对视图的修改会反映在原始数组上。
- 视图通常用于高效地访问数组的一部分,而不需要复制数据。
import numpy as np
a = np.array([1, 22, 333, 4444, 55555, 666666])
#浅拷贝
b = a.view()
print(a)
print(b)
b[0]=111
print(a)
print(b)
#深拷贝
print("----------")
c = a.copy()
print(a)
print(c)
c[0]=1
print(a)
print(c)
运行结果:
[ 1 22 333 4444 55555 666666]
[ 1 22 333 4444 55555 666666]
[ 111 22 333 4444 55555 666666]
[ 111 22 333 4444 55555 666666]
----------
[ 111 22 333 4444 55555 666666]
[ 111 22 333 4444 55555 666666]
[ 111 22 333 4444 55555 666666]
[ 1 22 333 4444 55555 666666]
矩阵
#矩阵
#转置矩阵
a = np.arange(15).reshape(3,5)
print(a)
print(a.T)
#matlib.empty()返回一个新的矩阵,填充随机数
b = np.matlib.empty((3,3),dtype=int)
print(b)
#numpy.zeros()返回全0矩阵,ones()全1,eye(n, M,k, dtype)对角线1
print(np.eye(3,4,k=1,dtype=int))
#identity(),返回单位矩阵
print(np.identity(3))
#numpy.random.rand()随机填充数据
print(np.random.rand(4,3))
线性代数
# 线性代数
a = np.arange(4).reshape(2, 2)
b = np.arange(15).reshape(5, 3)
c = np.arange(10).reshape(2, 5)
print(a, b, c, sep="\n--------\n")
# dot()两个数组的点积
print(np.dot(a, c))
# vdot()两个向量的点积,对应位置相乘的和
print(np.vdot(a, a.T))
# inner()两个数组的内积,只适用于一维数组,如果是高维只对数组的最后一个轴进行操作。
print(np.inner(a, a.T))
# matmul()返回两个数组的矩阵乘积
print(np.matmul(a, c))
# linalg.det()矩阵的行列式
print(np.linalg.det(a))
# linalg.solve()线性方程的解
print(np.linalg.solve(a, c))
# linalg.inv()矩阵的乘法逆矩阵
print(np.linalg.inv(a))