手记

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


课程介绍

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

今日主要内容导读:

第一部分:Numpy中的比较和Fancy Indexing

第二部分:numpy.array的比较

第三部分:Numpy中的arg运算


课程详细

1.Numpy中的比较和Fancy Indexing

#准备工作
import numpy as np
x = np.arange(16)

#假如想访问某个数
x[3]

#假如想访问某一段相连的数
x[3:9]

#假如想访问间隔有规律的数
x[3:9:2]

#假如想访问零散没规律的数
[x[3],x[5],x[8]]
#有点麻烦

#使用方便的方法来访问零散没规律的数
ind = [3,5,8]
x[ind]

#访问需要的数按照规定方式排列
ind = np.array([[0, 2],
               [1,8]])
x[ind]
#ind为下标噢

#矩阵如何使用下标来用
X = x.reshape(4,-1)
X

#第1行的第3列;第2行的第4列;第3行的第4列
row = np.array([0, 1, 2,])
col = np.array([2, 3, 3,])

#第row行第col列
X[row,col]

#第1行第col列
X[0,col]

#前两行
X[:2,col]

#使用布尔值当成列的索引,具体举例对0,2的索引感兴趣
col1 = [True, False, True, False]
#[1,2)对第1行进行抽取
X[1:2,col1]

2.numpy.array的比较

x=np.array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])

#将x中数据全进行单次单次单次判断,返回布尔值
x < 3
x > 3
x >= 3
x <= 3
x == 3
x != 3

#进行判断,逻辑就像是,套一个for对每个元素进行,如下操作
#矩阵也一样
2 * x ==24 - 4 * x

#找出有多少个符合标准的
np.sum(x >= 3)

#与上类似,代表着有多少个非0元素,布尔值的话
np.count_nonzero(x <= 3)

#或门,有1回1
np.any(x == 0)

#与门,全1回1
np.all(x == 0)

#和运算 看看有多少人小于三岁和大于三岁(同时满足)
np.sum((x > 3) & (x < 10))

#|或运算 看看有多少人偶数岁或大于三岁
np.sum((x % 2) | (x > 3))

#~非运算-有多少人年龄不是0岁
np.sum(~(x == 0))

#看看小于五岁有谁,相当于用原函数进行判断,的布尔值作为下标,
#来找出下表对应的元素
x[x < 5]

3.Numpy中的arg运算

3.1arg运算

import numpy as np
#先创建一个,正态分布的大随机数数组
x = np.random.normal(0, 1, size=100000)

#查找最小值
np.min(x)

#那么如何找到最小值的下标呢?
np.argmin(x)

#同理,最大值的索引
np.argmax(x)

3.2排序和使用索引

x = np.arange(16)

#对向量进行乱序处理
np.random.shuffle(x)
#假如是矩阵的话,就会使行作为一个向量进行随机排序

#将数据从小到大,索引进行排列,比如第0个数为3,
#就代表原来数组中第四个索引位置为最小
np.argsort(x)

#得到一个排好序的x
np.sort(x)

#使x排好序
x.sort()
#两种方式都能进行排序

#先创建一个矩阵,看看矩阵的排序是如何
X = np.random.randint(10,size=(4,4))

np.sort(X)
#默认axis=0,对每一行进行一次排序

#标定点,以某一个数字为分割,分割两个数组,前后都不是有序的
np.partition(x, 3)

#返回索引数组
np.argpartition(x, 3)

#矩阵排序下标返回
np.argsort(X, axis=1)

#矩阵标定点
#默认axis=0视每一行为一个整体,进行一次partion,在返回arg下标
np.argpartition(X,3)

课程收获

经过2天的学习,我发现Numpy中很多函数非常适合进行,矩阵或者数列方面的运算,并且比起列表更加高效,并且有很多很方便的函数和方法,想必在后续学习机器学习算法的时候能很方便地对数据进行操作。


课程截图

1人推荐
随时随地看视频
慕课网APP