笔记来源B站:https://www.bilibili.com/video/BV1xt411v7z9?p=21
python学习笔记
- 1 Numpy
- 1.1 Numpy优势
- 1.1.1 Numpy介绍
- 1.1.2 ndarray介绍
- 1.1.3 ndarray与Python原生list效率对比
- 1.1.4 ndarray优势
- 1.2 认识N维数组-ndarray属性
- 1.2.1 ndarray的属性
- 1.2.2 ndarray的形状
- 1.2.3 ndarray的类型
- 1.3 基本操作
- 1.3.1 生成数组的方法
1 Numpy
1.1 Numpy优势
1.1.1 Numpy介绍
Numpy(Numerical Python)是python的数值计算库,用于快速处理任意维度的数组
Numpy支持常见的数组和矩阵操作
Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器
1.1.2 ndarray介绍
ndarray:N-dimensional array
用法示例:
import numpy as np
score = np.ndarray([],[],[])
1.1.3 ndarray与Python原生list效率对比
结果:
1.1.4 ndarray优势
-
内存块风格
- ndarray存储的都是相同类型的数据,这样存储数据时数据与数据的地址都是连续的,虽然通用性比较差,但是能极大的提高运算效率
- list可以存储不同类型的数据,因此通用性较强,但是数据的地址不是连续的,读取数据的时候只能一个一个寻址,造成效率不高
-
ndarray支持并行化(向量化)运算
-
Numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,效率远高于纯Python代码
1.2 认识N维数组-ndarray属性
1.2.1 ndarray的属性
数组属性反映了数组本身固有的信息
属性名字 | 属性解释 |
---|---|
ndarray.shape | 数组维度的元组 |
ndarray.ndim | 数组维数 |
ndarray.size | 数组中的元素数量 |
ndarray.dtype | 数组元素的类型 |
ndarray.itemsize | 一个数组元素的长度(字节) |
其中上面两个加粗的属性比较重要,知道上面两个加粗的属性之后,就相当于知道了所有的其他属性
1.2.2 ndarray的形状
创建三个不同的数组
a = np.array([[1,2,3],[4,5,6]])
b = np.array([1,2,3,4])
c = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
1.2.3 ndarray的类型
1.3 基本操作
1.3.1 生成数组的方法
-
生成0和1的数组
np.zeros(shape)
np.ones(shape)
-
从现有数组中生成
np.array()
np.copy()
np.asarray()
注意:前两者是创建了一个新的数组,最后
np.asarray()
是指拷贝了索引值,因此当原数组发生改变的时候,使用最后一种方法所“创建”的数组也会发生变化 -
生成固定范围的数组
np.linspace(0, 10, 101)
# 生成[0,10]之间的等间距101个点
np.arange(a, b, c)
# 生成[a, b)之间的点,c是步长 -
生成随机数组