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
矩阵所有元素+x -
arr - x
矩阵所有元素-x -
arr * x
矩阵所有元素*x -
arr / x
矩阵所有元素/x -
arr > 3
矩阵判断,判断矩阵中的哪些元素大于x -
np.dot(arr1,arr2)
矩阵arr1乘以矩阵arr2 -
arr1.dot(arr2)
矩阵arr1乘以矩阵arr2 -
arr.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()
深拷贝
撒花🌻★,°:.☆( ̄▽ ̄)/$:.°★ 。🌻