本文章是关于光环机器学习课程中的numpy知识总结
目录
Numpy
关于数据科学
数据科学Vs传统开发
数据科学的神器——Numpy,Scipy
常用的学习库
人工智能中的数据结构
Numpy
学习链接:What is NumPy? — NumPy v1.21 Manual
关于数据科学
- 大数据开发:搭建大数据收集和处理平台hadoop,spark
- 数据分析:挖掘数据内部的规律
- 基于统计的数据分析
- 基于机器学习的高级数据挖掘data mining
- 机器学习
- 深度学习
数据科学Vs传统开发
- 传统开发:固定的流程和固定的结果bug,考察编程语法
- 数据科学:重在算法和理念!!向量化编程——矩阵
数据科学的神器——Numpy,Scipy
- 向量化计算
# 科学计算 import numpy as np # 数据可视化库——后续用来看模型效果 from matplotlib import pyplot as plt
常用的学习库
- scikit-learn
- git
- pipy
人工智能中的数据结构
- 标量scalar:单个数叫标量 1,2,3,4,5
- 向量,矢量vector:【一维数组】,[1,2,3,4,5]标量按一定的顺序排成行和列
- 矩阵matrix:【二维数组】成行成列的数据
- 张量tensor:【三维数组】,【四维数组】等等高维数组
# NumPy的核心数据结构就是一个N维数组
# 构造一个数组(矩阵)
arr = np.array([1,2,3])
# 可以切片
arr[1]
# 按列取数
arr[:,0]
# 二维取数,前面能取到,后面取不到
arr[2:3,3:4]
# 打乱样本顺序
np.random.shuffle(arr)
# 查看其数据类型,静态语言,超出会溢出
arr.dtype
# 查看形状(几行几列)
arr.shape
# 元素个数
arr.size
# 看维度
arr.ndim
# 修改编码位数
arr2 = arr.astype(dtype = np.int32)
>>>arr2 → array([1, 2, 3], dtype=int32)
#定义矩阵时定义编码位数
arr3 = np.array([1,2,3],dtype=np.uint8)
# 向量化计算
arr + 1
# 在不引起歧义的情况下保持队形,要无歧义的情况下,broadcast
arr2 = arr *10
arr2
print(arr + arr2)
# 不能broadcast的例子,两个不同维度的矩阵相加
arr3 = np.array([2,3])
arr2 + arr3
out:operands could not be broadcast together with shapes (3,) (2,)
# 矩阵的转置
arr4 = ([1,2,3],[4,5,6])
arr4.T
out:array([1,4],[2,5],[3,6])
# range
arr5 = np.arange(10)
arr5
out:array([0,1,2,3,4,5,6,7,8,9])
# 零矩阵
np.zeros(shape=(2,3),dtype=int)
# 一矩阵
np.ones(shape=(2,3))
# 相似举证
np.zero_like(arr)
np.one_like(arr)
# 生成等差数列,1到10取10个数
x = np.linspace(1,10,10)
# 生成y数据
y = x ** 2
# 调包
from matplotlib import pyplot as plt
# 画散点图
plt.scatter(x,y)
# 画折线图
plt.plot(x,y)
# 画柱状图
plt.bar(x,y)
- 标量scalar:单个数叫标量 1,2,3,4,5
- 向量,矢量vector:【一维数组】,[1,2,3,4,5]标量按一定的顺序排成行和列
- 矩阵matrix:【二维数组】成行成列的数据
- 张量tensor:【三维数组】,【四维数组】等等高维数组
# NumPy的核心数据结构就是一个N维数组 # 构造一个数组(矩阵) arr = np.array([1,2,3]) # 可以切片 arr[1] # 按列取数 arr[:,0] # 二维取数,前面能取到,后面取不到 arr[2:3,3:4] # 打乱样本顺序 np.random.shuffle(arr) # 查看其数据类型,静态语言,超出会溢出 arr.dtype # 查看形状(几行几列) arr.shape # 元素个数 arr.size # 看维度 arr.ndim # 修改编码位数 arr2 = arr.astype(dtype = np.int32) >>>arr2 → array([1, 2, 3], dtype=int32) #定义矩阵时定义编码位数 arr3 = np.array([1,2,3],dtype=np.uint8) # 向量化计算 arr + 1 # 在不引起歧义的情况下保持队形,要无歧义的情况下,broadcast arr2 = arr *10 arr2 print(arr + arr2) # 不能broadcast的例子,两个不同维度的矩阵相加 arr3 = np.array([2,3]) arr2 + arr3 out:operands could not be broadcast together with shapes (3,) (2,)
# 矩阵的转置 arr4 = ([1,2,3],[4,5,6]) arr4.T out:array([1,4],[2,5],[3,6]) # range arr5 = np.arange(10) arr5 out:array([0,1,2,3,4,5,6,7,8,9]) # 零矩阵 np.zeros(shape=(2,3),dtype=int) # 一矩阵 np.ones(shape=(2,3)) # 相似举证 np.zero_like(arr) np.one_like(arr)
# 生成等差数列,1到10取10个数 x = np.linspace(1,10,10) # 生成y数据 y = x ** 2 # 调包 from matplotlib import pyplot as plt # 画散点图 plt.scatter(x,y) # 画折线图 plt.plot(x,y) # 画柱状图 plt.bar(x,y)
numpy = python中的容器 + 科学计算的功能



