在数据分析和机器学习中,大量的使用科学计算,Numpy提供了大型矩阵计算的方式,而这些是python标准库中所缺少的。Numpy也是许多优秀的第三方库的基础,依赖于Numpy的库非常多,后续会慢慢的进行介绍。
Numpy的安装
和许多的库一样,不管在windows平台下还是在linux平台下,安装Numpy的命令如下:
pip install numpy
安装完以后:
1Collecting numpy 2 Downloading numpy-1.14.0-cp27-none-win32.whl (9.8MB) 3 100% |████████████████████████████████| 9.8MB 27kB/s 4Installing collected packages: numpy 5Successfully installed numpy-1.14.0
在python解析器 下查看 Numpy 是否安装成功:
import numpy
Numpy生成数组函数(Array creation )
直接使用array 函数生成数组:
1>>> import numpy as np 2>>> a = np.array([2,3,4]) 3>>> print a 4[2 3 4] 5>>> b = np.array([(1,3,4),(2,3,5)]) 6>>> print b 7[[1 3 4] 8 [2 3 5]] 9>>>
在array 函数中使用python自带的list ,在多维数组中在list 中存放多个元祖。
使用 empty, zeros, ones, identity,eye 创建矩阵:
1>>> import numpy as np 2#使用empty创建2x2矩阵 3>>> a = np.empty([2,2]) 4>>> print a 5[[1.92432613e-295 1.92410215e-295] 6 [1.92414694e-295 1.92414694e-295]]
identity 为返回一个N维单位方阵。
同样的还有empty_like, ones_like, zeros_like 是复制对方的维数,进行相应的处理。
使用 arange 和linspace 生成数组:
在0到2中按步长为0.3生成数组:
1>>> np.arange( 0, 2, 0.3 ) 2array([0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
在0到2中生成9个数:
1>>> np.linspace( 0, 2, 9 ) 2array([0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
Numpy中数组的基本属性
在Numpy中生成的数组叫做ndarray , 在ndarray 中有如下的属性:
-
ndarray.ndim: 数组维数
程序如下:
1 >>> a = np.zeros([3,4]) 2 >>> a.ndim 3 2 4 >>> b = np.zeros([3,4,5]) 5 >>> b.ndim 6 3 7 >>> -
ndarray.shape:数组的结构 几乘几 数组
1 >>> print a.shape 2 (3, 4) 3 >>> print b.shape 4 (3, 4, 5) 5 >>> -
ndarray.size: 数组有几个元素
1 >>> print a.size 2 12 3 >>> print b.size 4 60 5 >>>
Numpy中数组的保存
使用tofile 和 fromfile
1import numpy as np 2 3a = np.array([(1,2,3,4),(4,5,2,4)]) 4 5print a 6 7a.tofile("filename.bin") 8 9b = np.fromfile("filename.bin",dtype = np.int32) 10 11print b.reshape(2,4)
还可以使用 np.save() np.load() 和 np.savez() 这一组合进行数据的存储。
1import numpy as np 2 3a = np.array([(1,2,3,4),(4,5,2,4)]) 4 5print a 6 7np.save("a.npy", a) 8c = np.load("a.npy") 9print c
另外一组为 savetxt() 和 loadtxt()
1import numpy as np 2 3a = np.array([(1,2,3,4),(4,5,2,4)]) 4 5print a 6np.savetxt("a.txt", a) 7np.loadtxt("a.txt") 8c = np.load("a.npy") 9print c
更多教程:阿猫学编程