文章目录
机器学习——基础算法(一)
一、numpy &pandas有什么用
用于Python对数据进行分析,用矩阵进行数据计算
二、numpy&pandas的安装
三、numpy属性
import numpy as np
array = np.array([[1,2,3],
[2,3,4]])
print(array)
print('number of dim:',array.ndim)
print('shape:',array.shape)
print('size:',array.size)
四、numpy的创建array
import numpy as np
a = np.array([2,23,4])
print(a)
import numpy as np
a = np.array([2,23,4],dtype=np.float)
print(a.dtype)
import numpy as np
a = np.array([[2,23,4],
[2,32,4]])
print(a)
import numpy as np
a = np.zeros((3,4))
print(a)
import numpy as np
a = np.empty((3,4))
print(a)
import numpy as np
a = np.arange(12).reshape((3,4))
print(a)
import numpy as np
a = np.linspace(1,10,5)
print(a)
import numpy as np
a = np.linspace(1,10,6).reshape((2,3))
print(a)
五、numpy的基础运算
(一)减法(加法类似)
import numpy as np
a = np.array([10,20,30,40])
b = np.arange(4)
print(a,b)
c = a-b
print(c)
(二)平方
import numpy as np
a = np.array([10,20,30,40])
b = np.arange(4)
print(a,b)
c = b**2
print(c)
(三)三角函数运算
import numpy as np
a = np.array([10,20,30,40])
b = np.arange(4)
c = 10*np.sin(a)
print(c)
(四)判断列表中的大小范围
import numpy as np
a = np.array([10,20,30,40])
b = np.arange(4)
print(b)
print(b<3)
(五)矩阵的点乘运算和*运算
import numpy as np
a = np.array([[1,1],
[0,1]])
b = np.arange(4).reshape((2,2))
c = a*b
c_dot = np.dot(a,b)
c_dot_2 = a.dot(b)
print(c)
print(c_dot)
print(c_dot_2)
(六)随机矩阵
import numpy as np
a = np.random.random((2,4))
print(a)
print(np.sum(a))
print(np.min(a))
print(np.max(a))
注:所有运算情况均适用,axis=1进行行运算,axis=0进行列运算
import numpy as np
a = np.random.random((2,4))
print(a)
print(np.sum(a,axis=1))
print(np.min(a,axis=0))
print(np.max(a,axis=1))
(七)求矩阵最大值和最小值的索引
import numpy as np
A = np.arange(2,14).reshape((3,4))
print(np.argmin(A))
print(np.argmax(A))
(八)求平均值,中值,累加和累减
import numpy as np
A = np.arange(14,2,-1).reshape((3,4))
print(A)
print(np.mean(A))
print(A.mean())
print(np.average(A))
print(np.median(A))
print(np.cumsum(A)) #第一个数为原矩阵的值,第二个为原矩阵的第一个和第二个值相加,类推
print(np.diff(A))
print(np.nonzero(A))
print(np.sort(A))# 按照逐行进行排序
print(np.transpose(A))#矩阵的行变成列列变成行
print((A.T).dot(A))
print(np.clip(A,5,9))#所有小于5的数变成5,所有大于9的数变成9,中间数保持不变
(九)numpy的索引运算
(1)打印指定位置值
import numpy as np
A = np.arange(3,15).reshape((3,4))
print(A)
print(A[2])
print(A[2][1])
print(A[2,:])#第二行的所有数
print(A[:,1])#第一列的所有数
print(A[1,1:2])
print(A[1,1:3])
(2)迭代每一行和列
import numpy as np
A = np.arange(3,15).reshape((3,4))
print(A)
for row in A: #迭代列
print(row)
print(A.T)# 迭代列
for column in A.T:
print(column)
import numpy as np
A = np.arange(3,15).reshape((3,4))
print(A)
print(A.flatten())
for item in A.flat:
print(item)
(十)array合并
import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.vstack((A,B)) #上下合并
D = np.hstack((A,B)) #左右合并
print(C)
print(D)
print(A.shape,C.shape)
print(A.shape,D.shape)
(十一)横向的矩阵变成纵向的矩阵
import numpy as np
A = np.array([1,1,1])[:,np.newaxis]
B = np.array([2,2,2])[:,np.newaxis]
C = np.vstack((A,B)) #上下合并
D = np.hstack((A,B)) #左右合并
print(C)
print(D)
print(A.shape,C.shape)
print(A.shape,D.shape)
做多个array合并
import numpy as np
A = np.array([1,1,1])[:,np.newaxis]
B = np.array([2,2,2])[:,np.newaxis]
C = np.concatenate((A,B,B,A),axis=0) #纵向合并
D = np.concatenate((A,B,B,A),axis=1) #横向合并
print(C)
print(D)
(十二)array的分割
import numpy as np
A = np.arange(12).reshape((3,4))
print(A)
print(np.split(A,2,axis = 1))#纵向分割成2块
print(np.split(A,3,axis = 0))#横向分割成3块
print(np.array_split(A,3,axis = 1))#横向分割成3块,且每块可以不等
print(np.vsplit(A,3))#横向
print(np.hsplit(A,2))#纵向
(十三)copy&deep copy
(1)copy
通过等号赋值,a和b的存储位置相同,改变任意变量都会影响其他变量。可以通过is 语句判断