机器学习和python学习笔记1(课程1~13)

机器学习

一个机器学习的常规套路

1.数据收集和预处理
2.特征选择和模型构建
3.评估和预测

使用Anaconda安装python环境

系统:Windows

  1. 下载python并安装 python
  2. 使用Anaconda安装python和相应库Anaconda
  3. Anaconda prompt的使用:相当于Windows下的cmd

conda list #库目录
conda install numpy #安装库
anaconda search -t conda tensorflow #寻找其他库的安装资源
anaconda show nehaljwani/tensorflow-gpu #显示安装对应库的命令
conda install --channel https://conda.anaconda.org/nehaljwani tensorflow-gpu #安装对应库

  1. Jupyter notebook:相当于网页版的python编译器
  2. Anaconda–设置国内镜像—加入清华大学国内镜像

1、打开anaconda prompt,依次输入命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
2.输入命令检查channels
conda config --show channels

输出刚添加的channels

numpy介绍

numpy基础结构

print(help(numpy.genfromtxt))#搜索打印numpy.genfromtxt的格式用法

1、查看数组类型

import numpy
v=numpy.array([1,2,3,4])
print(v.shape)
#(4,)

2、数组中元素类型一致

import numpy
v=numpy.array([[1,2.0],[3,‘4’]])
v.dtype
#dtype(’<U11’)字符类型
print(v)
#[[‘1’ ‘2’] [‘3’ ‘4’]]统一字符类型

numpy矩阵结构

1、取矩阵中的某列

import numpy
v=numpy.array([[1,2],[3,4],[5,6]])
print(v[:,1])
#[2 4 6]

2、对numpy.array进行运算时,会对其中每个元素进行操作

import numpy
v=numpy.array([1,2,3,4])
a=(v==2)
print(a)
print(v[a])
#[False True False False]
[2]可根据a返回值,索引对应数,对多维数组通用

3、更改字符类型

import numpy
v=numpy.array([“1”,“2”,“3”,“4”])#字符串类型
v=v.astype(float)
print(v.dtype)
#float64
print(v)
#[1. 2. 3. 4.]

4、数组对列求和对列求和

import numpy
v=numpy.array([[1,2,3],
[2,3,4],
[3,5,8]])
v.sum(axis=0)#对列求和
#array([ 6, 10, 15])
v.sum(axis=1)#对行求和
#array([ 6, 9, 16])

numpy的常用函数

1、定义数组np.arange(15);重置数据行列numpy.arange.reshape

import numpy as np
print(np.arange(15))#定义一个0到14的一维数组
a=np.arange(15).reshape(3,5)#将arange数组变成三行五列
a
#[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
#array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])#输出

2、0值、1值初始化矩阵,同时定义数值类型

np.zeros((3,4))
#array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])#输出float类型
np.ones((3,4),dtype=“Int32”)
.#array([[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]])#输出整型

3、定义数组np.arange(10,30,5)

np.arange(10,30,5)
#array([10, 15, 20, 25])
np.arange(0,2,0.3)
#array([0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])

4、np.random.random((2,3))随机取0~1的数组成2行3列的矩阵
5、np.linspace(0,2*pi,100)定义有上下限的有个数的一维数组

from numpy import pi
np.linspace(0,2pi,100)
#下限0上线2
pi,有100个元素

6、矩阵中对应位置可相加减
7、矩阵对应位置相乘v*a和矩阵乘法v.dot(a)

import numpy
v=numpy.array([[1,2],[3,4]])
print(v)
a=numpy.array([[1,0],[3,4]])
print(a)
print(v*a)#对应位置乘
print(v.dot(a))#矩阵乘法
print(np.dot(a,v))#矩阵乘法
#[[1 2]
[3 4]]
[[1 0]
[3 4]]
[[ 1 0]
[ 9 16]]
[[ 7 8]
[15 16]]
[[ 1 2]
[15 22]]输出

8、矩阵拼接和分割

a.ravel #将矩阵变为向量
a.reshape(3,-1)#设定矩阵为三行,几列自行计算
b=np.floor(a)#np.floor为向下取整
np.hstack(a,b)#列数增加拼接矩阵a和b
np.vstack(a,b)#行数增加拼接矩阵a和b
np.hsplit(a,3)#把a按照列分成三份
np.hsplit(a,(3,4))#指定到到位切,在第三和第四列切

9、矩阵的复制

b=a#a就是b,对a做变换就是变换b,位置一样,内容一样
c=a.view#a和c指向不同的位置,但是内容是一样的
d=a.copy#a和d的位置不同,内容不同

10、矩阵按行/列求最大值位置和最大值

ind=data.argmac(axis=0)#按列求最大值下标
data_max= data[ind,range(data.shape[1])]#data.shape[1]表示取矩阵列数,range表循环取0到矩阵列数,data_max表每列最大值。

11、矩阵的扩展

np.tile(a,(4,3))#将a复制增添扩展成4行三列

12、矩阵的排序

a.sort(axis=1)#按行排序
j=np.argsort(a)#对一行向量从小到大排序,获取排序结果的下标
a[j]#得到排序后的向量数组

猜你喜欢

转载自blog.csdn.net/qq_43453926/article/details/89361079
今日推荐