Numpy简介
- python标准库中的列表(list)可以当数组用,支持动态内存分配和垃圾收集,列表元素可以是任何对象,功能强大!
- 列表的缺点:
- 慢:循环时有各种下标检查和类型检查
- 占内存多:保存的是对象+指针
NumPy的优点:
- 两大法宝:多维数组ndarray和通用函数ufunc
- 面向数值计算,速度快(内置函数逼近c语言)
NumPy官方提供丰富的中文资源如何使用Numpy等python第三方软件包?(如何开外挂?)
- 先导入再使用,没导入就没法用
- 如何导入?用import
- 被import的可以是通过conda或pip安装的包,也可以是python的path中(包括当前目录)的其它x.py文件。
# 导入名为numpy的包,命名为npimport numpy as np
多维数组ndarray对象
- 多维数组ndarray(n-dimensional array object)是NumPy的核心对象
- 它存储单一类型的多维数组,注意与列表(list)的区别
- 结构简单,功能强大
- 使用优化过的C API,速度快
ndarray对象:创建
# 给np.array()函数传递python序列对象a=np.array([1,2,3,4])b=np.array((5,6,7,8))c=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])print('a = ',a)print('b = ',b)print('c = ',c)
输出结果
# 也可以用zeros, ones, empty和full函数,创建指定大小,值为0/1/空/定数值的数组zz=np.zeros((2,3,4))oo=np.ones((2,3,4))ee=np.empty((2,3,4))ff=np.full((2,3,4),999)print('zz = ', zz)print('oo = ', oo)print('ee = ', ee)print('ff = ', ff)# empty只分配内存,不赋值,最快。但是里面的内容是啥就不一定了!使用empty创建的ndarray,一定得初始化再使用。
输出结果
# 创建形状类型与a相同的数组za = np.zeros_like(a)oa = np.ones_like(a)ea = np.empty_like(a)fa = np.full_like(a,999)