numpy介绍
用于快速处理任意维度的数组。
Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。
Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。
ndarray介绍
NumPy提供了一个N维数组类型ndarray
- 用来存储相同类型数据的集合
ndarray的优势
- 内存块风格
- list – 分离式存储,存储内容多样化
- ndarray – 一体式存储,存储类型必须一样
- ndarray支持并行化运算(向量化运算)
- 矩阵分块运算 比for循环肯定要快
- ndarray底层是用C语言写的,效率更高,释放了GIL
N维数组-ndarray
属性名字 | 属性解释 |
---|---|
ndarray.shape | 数组维度的元组 |
ndarray.ndim | 数组维数 |
ndarray.size | 数组中的元素数量 |
ndarray.itemsize | 一个数组元素的长度(字节) |
ndarray.dtype | 数组元素的类型 |
ndarray的形状
a = np.array([1,2,3,4])
b = np.array([[1,2,3],[4,5,6]])
c = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
>>> a.shape
>>> b.shape
>>> c.shape
(4,) # 一维数组
(2, 3) # 二维数组
(2, 2, 3) # 三维数组
图示理解:新增加的维度视为0轴
基本操作
生成0,1
a=np.ones([3,4]) #默认类型float64
a
>>>array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
a.shape >(3, 4)
a.dtype >dtype('float64')
b=np.ones((3,4),dtype=np.int16) #括号里shape元组和列表一样
b
>>>array([[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]], dtype=int16)
c=np.zeros([2,4])
c
>>>array([[0., 0., 0., 0.],
[0., 0., 0., 0.]]
np.eye(5) #单位矩阵
>>>array([[1., 0., 0., 0., 0.