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