Numpy科学计算库
01 Numpy属性
Numpy常用于矩阵的运算
np.array()
定义array矩阵array.ndim
矩阵的维度array.shape
矩阵的形状array.size
矩阵的大小array.dtype
矩阵元素的类型
02 array创建
np.array([x,x,x],dtype = np.int/float)
定义矩阵并定义矩阵元素类型np.array([1,2,3])
一维矩阵np.array([[xxx]])
二维矩阵(多少个中括号就多少维度的矩阵)np.zero((a,b))
定义一个a行b列全为0的矩阵np.one((a,b))
定义一个a行b列全为1的矩阵np.arange(x)
生成0到x-1的x个数字np.arange(a,b)
生成a到b-1的b-a个数字np.arange(a,b,c)
生成a到b每隔c输出一个数字np.arange(c).reshape(a,b)
将c个数字分成a行b列生成
03 numpy的运算
arr1 + arr2
矩阵对位相加arr1 - arr2
矩阵对位相减arr1 * arr2
矩阵对位相乘arr1 ** arr2
矩阵对位取幂arr1 / arr2
矩阵对位相除arr1 % arr2
矩阵对位取余arr1 // arr2
矩阵对位取整arr + x
矩阵所有元素+xarr - x
矩阵所有元素-xarr * x
矩阵所有元素*xarr / x
矩阵所有元素/xarr > 3
矩阵判断,判断矩阵中的哪些元素大于xnp.dot(arr1,arr2)
矩阵arr1乘以矩阵arr2arr1.dot(arr2)
矩阵arr1乘以矩阵arr2arr.T
arr矩阵转置(一维的不可转置)np.transpose(arr)
arr矩阵转置
04 随机生成数以及矩阵的运算
np.random.random(a,b)
生成a行b列的0到1的随机数np.random.normal(a,b)
生成a行b列的符合正态分布的随机数np.random.randint(0,10,size = (a,b))
生成a行b列的int类型的的0到9的十位数np.sum(xxx)
求xxx矩阵和np.min(xxx)
求xxx矩阵中的最小的元素np.max(xxx)
求xxx矩阵中的最大元素np.sum(xxx,axis=0)
求xxx矩阵中按列求和,axis代表按列np.sum(xxx,axis=1)
求xxx矩阵中按行求和,axis代表按行np.argmin(xxx)
求xxx矩阵中最小值的索引值np.argmax(xxx)
求xxx矩阵中最大值的索引值np.mean(xxx)
和xxx.mean()
求矩阵中元素的平均值np.median(xxx)
求xxx矩阵中的中位数,若为双数求中间两位数的平均值np.sqrt(xxx)
xxx矩阵开方np.sort(xxx)
矩阵xxx按行排序np.clip(xxx,a,b)
小于a的数的值换成a,大于b的值换成b
05 numpy的索引
对1xn式的矩阵:
arr[x]
索引值为x的数arr[a:b]
索引值从a到b的b-a个值arr[a:-x]
索引值从a到倒数第x-1个值arr[:a]
索引值为前a的数arr[-a:]
索引值为到手后a个数
对nxm式的矩阵:
arr[a]
索引值为第a行的值arr[a][b]
或arr[a,b]
索引值为a,b的值arr[:,a]
索引值为a的列for x in arr:
遍历行for x in arr.T
遍历列for x in arr.flat
遍历所有元素
06 array合并
np.vstack((arr1,arr2,arr3....))
纵向合并np.hstack((arr1,arr2,arr3....))
横向合并np.concatenate((arr1,arr2....),axis = 0/1)
合并array时,维度要相同,形状要匹配,axis=0是按列合并(纵向合并),axis=1是按行合并(横向合并)np.newaxis
给矩阵增加维度np.atleast_1d/2d/3d(arr)
判断矩阵是否是一维/二维/三维,若不够维度则增加到满足相应的维度
07 array分割
np.split(arr,a,axis = 0/1)
将arr分割成a份,通过横向/纵向分割np.array_split(arr,a,axis = 0/1)
arr的不等分割np.vsplit(arr,a)
垂直分割np.hsplit(arr,a)
水平分割
08 numpy的浅拷贝和深拷贝
arr1 = arr2
浅拷贝,arr1和arr2共享一块内存arr1 = arr2.copy()
深拷贝
撒花🌻★,°:.☆( ̄▽ ̄)/$:.°★ 。🌻