笔记来源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是步长
-  生成随机数组 



















