继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第3天 Python3入门机器学习

黄义舜
关注TA
已关注
手记 36
粉丝 4
获赞 32

课程介绍

课程名称:Python3入门机器学习 经典算法与应用 入行人工智能
课程章节: 3-4; 3-5; 3-6
主讲老师:liuyubobobo


今日内容

  1. 创建矩阵与数组
  2. 矩阵与数组基本操作

第一部分:创建矩阵或数组

创建自己导入的数据作为矩阵或数组

numpy.array


a = np.array([i for i in range(10)])
b = np.array([1,2,3.14])
b.dtype
c = np.arange(0,20,2)

#a=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#b=array([1.  , 2.  , 3.14])
#dtype('float64')    浮点数
#c=array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18])
#可以改变步长为浮点数
#默认从0开始,步长为1

其他创建numpy.array的方法

1.创建零向量或矩阵

#创建零向量
np.zeros(shape=10,dtype=int)
#零向量(几个,dtype=类型)
#array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

#创建零矩阵
np.zeros(shape=(3,5))
#零矩阵(shape=数组)

2.创建1向量或矩阵

#创建1向量
np.ones(10)
#array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]) 默认浮点数

#创建1矩阵
np.ones(shape = (3,5), dtype=int)
#创造行三列五,类型为整数,由一组成的矩阵
#array([[1, 1, 1, 1, 1],
#       [1, 1, 1, 1, 1],
#       [1, 1, 1, 1, 1]])

3.创造任意数的向量或矩阵

#创造任意数的矩阵
np.full((3,5),666)
np.full(shape=(3,5), fill_value=666)
#二者相同,创造行三列五,由666组成的矩阵

4.创建等差数列

np.linspace(0,20,10)
#创建一个等差数列,数差相等,包含0和20

5.创建随机数组成的数列或者矩阵

#创建一个随机数
np.random.randint(0,10)
#0-10之间取一个随机数
#取值范围和range类似,前开后闭

#创建一个随机数组
np.random.randint(0,10,size=10)
#0-10之间取10个随机数

#创建一个随机矩阵
np.random.randint(0,10,size=(3,5))
#0-10之间取size=(行,列)的随机矩阵
#每次运行都是不一样的结果

#随机种子***
np.random.seed(666)
np.random.randint(0,10,size=(3,5))
#指定随机生成的种子,能获得种子指定的随机数,

#生成10个0-1之间的随机数向量
np.random.random(10)

#生成0-1之间的随机数行为3列为5的矩阵
np.random.random((3,5))

6.创建符合正态分布的数列或者矩阵

np.random.normal()
#符合均值为0,方差为1符合正态分布的浮点数

np.random.normal(0,10,(3,5))
#生成均值为0,方差为10符合正态分布的矩阵

第二部分:Numpy.array的基本操作

先设置一个数组x和矩阵y

x = np.arange(10)
#一维数组`

X = np.arange(16).reshape(4,4)
#将np.arrange(16)生成的数组.reshape转换成4x4的矩阵

基本操作

1.查看维度

x.ndim
#1
X.ndim
#2

2.查看行与列

x.shape
#(10,)  代表数组
X.shape
#(4, 4)  4行x4列的矩阵

数据访问

1.访问整体

x
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

2.利用下标访问

x[0]
#访问第一个数据
#0

3.访问矩阵

X[2,3]
#访问矩阵访问多维数组中的元素
#11  访问第二行第三列的数据

数据访问-切片

1.访问数组

x[0:5]
#访问[0-5)个元素
#[0, 1, 2, 3, 4]
x[::2]
#从头到尾访问,步长为2
#[0, 2, 4, 6, 8]

2.访问矩阵

X[:2,:3]
#取前两行前三列
'''array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])'''
X[1:3,2:4]
#取1行和第2行,第2列和第3列
#注意:数组还有第0列第0行,也就是普遍意义上的第一行第一列
X[0]
#第一行
X[:,0]
#第一列

切片之后的修改

在python列表中,切片之后重新赋值,就会使subx与x指向不同的内存 就会使,对subx的修改不影响x
而在numpy这里不一样,对子集的修改会影响到主集,所以需要使用copy()函数先复制一个在进行操作

reshape改变维度

1.查看维度

x.shape

2.改变维度

B=x.reshape(2,5)
#x=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#array([[0, 1, 2, 3, 4],
#       [5, 6, 7, 8, 9]])
#把x的10个数从一维变成2列5行的二位矩阵
C=x.reshape(10,-1)
#获得十行的一个向量(10, 1)
D=x.reshape(-1,10)
#获得十列的一个矩阵(1, 10)

今日收获

今天对使用python操作矩阵,向量,有了基本的了解,写下笔记日后想不起来的还能翻一番挺不错的。

课程截图

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP