正式开启机器学习的学习之前,我们需要掌握numpy(处理矩阵的库),panda(处理表盒的库)
numpy库
- 是 Python 科学计算的基础库,全称为 Numerical Python,主要用于数值计算与多维数组操作。我们重点掌握多维数组,用来处理矩阵。
- ndarray 多维数组:同类型元素的连续存储结构,支持矢量运算、广播机制,性能远高于 Python 原生列表。
- 数值计算工具:包含线性代数、傅里叶变换、随机数生成、统计运算等功能。
- 底层优化:核心由 C 语言实现,支持并行计算,兼顾 Python 的易用性与编译语言的速度。
1、数组的创建,维度:
python
#导入库并重命名
import numpy as np
#创建数组
l=[1,2,3,4,5]
a=np.array(l) #数组只接受接收「一个整体的数据集」(如列表、元组、嵌套列表),而不是零散的值。第二个参数可以指定参数的类型
print(a)
#数组的维度,即层层嵌套,多嵌套一层,就多一个维度
print(a)#一维数组
b=np.array([a,a,a])
print(b)#二维数组
c=np.array([b,b,b])
print(c)#三维数组
#由于数组只接受一个完整的数据集,下面这个代码会报错
b=np.array(a,a,a)
print(b)#二维数组
#打印数组的大小,形状,维度,数据类型
print(c.size,c.shape,c.ndim,c.dtype)
2、改变数组维度
python
import numpy as np
l=[1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2]
a=np,array(l)
#reshape改变维度
b=a.reshape(4,4)
c=a.reshape(4,-1) #-1表示自动计算该维度的行数
print(b)
print(c)
d=b.reshape(2,-1)#将b降成二维
print(d)
#将高纬度转变成一维ravel
e=b.ravel()
print(e)
#返回数组的副本flatten
f=a.flatten
print(f)
# flatten方法返回的是原数组的副本,这意味着对返回的一维数组所做的任何修改都不会影响原始的多维数组。
# ravel方法(如果可能)返回的是原始数组的视图,因此对返回的一维数组所做的修改可能会影响原始的多维数组。这是因为ravel只是改变了数组的形状和步长,而没有复制数据。
那么reshape()方法返回的是视图还是副本呢?
视图:和原来的数组共享存储空间,比如上面代码中,修改b中的某个值,a对应的值也随之改变,因为本质是同一个数据。
副本:单独开辟新的存储空间,副本中的值改变不影响原数组。
对数组进行切片等操作返回的是视图。
数组本身会在内存中开辟连续的存储空间。
①reshape()操作的对象没有改变原来数组的连续的存储顺序时,比如直接对原数组reshape,返回的是视图。
②reshape()的操作对象改变了原来数组的连续的存储顺序时,比如对原数组以步长为2进行切片的对象使用reshape(),此时返回副本。
3、创建特殊的数组
4、numpy中的两个常用函数
一次性产生规律数据的数组:
5、数组元素的选取与修改
使用中括号选取:array1【】,选取某些元素时需要以一个列表整体的形式传入数据比如array1【【1,2,5】】。


6、数据的组合
7、数组元素的切割
水平切割不是指沿着水平方向切割,而是切分出来的数组可以沿着水平方向拼接至完整,其实是沿着竖直方向切割。
8、数组的算数运算
即对应元素进行算数运算
休息,明天再写

