一个用python实现的科学计算包。包括:
1.一个强大的N维数组对象Array;
2、比较成熟的(广播)函数库;
3、用于整合C/C++和Fortran代码的工具包;
4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。
——摘自百度百科
总之,NumPy(Numeric Python)提供了许多高级的数值编程工具,专为进行严格的数字处理而产生。多为很多大型金融公司使用。是学习python数据分析必须要学习的科学计算工具。
numpy.random包含多种概率分布的随机样本,是数据分析辅助的重点工具之一
#随机数生成sample = np.random.normal(size = (4,4))print(sample) [[-1.65917538 1.93054953 0.05101332 0.03720209] [-1.58787575 0.75759313 -1.58702116 -1.34863132] [ 1.1078331 1.03023237 -2.68317438 0.46450006] [-0.90010072 -1.01347576 -1.01632623 -0.31983803]] # numpy.random.rand(d0, d1, ..., dn):生成一个[0,1)之间的随机浮点数或N维浮点数组 —— 均匀分布a = np.random.rand(5)b = np.random.rand(2,3)print(a,type(a))print(b,type(b))print('--------------')data1 = np.random.rand(1000)data2 = np.random.rand(1000)import matplotlib.pyplot as plt%matplotlib inline#魔法函数,每次运行自动生成图表plt.scatter(data1,data2)plt.scatter(data1,data2) [ 0.1099355 0.68164177 0.67924836 0.33090322 0.18036907] <class 'numpy.ndarray'>[[ 0.06098348 0.40350489 0.93937925] [ 0.56571866 0.79130795 0.42104344]] <class 'numpy.ndarray'>--------------<matplotlib.collections.PathCollection at 0x277ffca50f0> # numpy.random.randn(d0, d1, ..., dn):生成一个浮点数或N维浮点数组 —— 正态分布data3 = np.random.randn(1000)data4 = np.random.randn(1000)plt.scatter(data3,data4) <matplotlib.collections.PathCollection at 0x277ffd56b70> # numpy.random.randint(low, high=None, size=None, dtype='l'):生成一个整数或N维整数数组# 若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数,且high必须大于low # dtype参数:只能是int类型 print(np.random.randint(2))# low=2:生成1个[0,2)之间随机整数 print(np.random.randint(10))# low=10:生成1个[0,10)之间随机整数 print(np.random.randint(2,10))# low=2,high=10:生成1个[2,6)之间随机整数 print(np.random.randint(5,size = 10))# low=5,size=10:生成10个[0,5)之间随机整数 print(np.random.randint(2,5,size = 10))# low=2,high=6,size=5:生成5个[2,6)之间随机整数print(np.random.randint(2,6,(2,3)))# low=2,high=6,size=(2,3):生成一个2*3整数数组,取值范围:[2,6)随机整数 185[4 4 0 2 3 4 3 0 0 2][2 4 3 4 4 3 3 2 2 3][[4 4 5] [3 5 4]] 3.Numpy文件的生成及读取 3.1 读取/写入数组文件 import osos.chdir('E:\Python')ar = np.random.randint(0,10,(2,5)) #取值范围要完整,否则报错。print(ar)np.save('Numpytest.npy',ar) [[0 4 3 1 2] [3 4 0 5 3]]finished!!! # 读取数组数据 .npy文件ar_load = np.load('Numpytest.npy')print(ar_load) [[0 4 3 1 2] [3 4 0 5 3]] 3.2 存储/读取文本文件 # 存储/读取文本文件ar = np.random.rand(5,5)np.savetxt('array.txt',ar, delimiter=',',fmt = '%.2f')# np.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='n', header='', footer='', comments='# '):存储为文本txt文件ar_loadtxt = np.loadtxt('array.txt', delimiter=',')print(ar_loadtxt,ar_loadtxt.dtype)# 也可以直接 np.loadtxt('E:\Python\array.txt') [[ 0.01 0.39 0.31 0.32 0.08] [ 0.3 0.05 0.14 0.75 0.55] [ 0.35 0.83 0.7 0.55 0.56] [ 0.95 0.59 0.97 0.93 0.76] [ 0.56 0.84 0.13 0.15 0.2 ]] float64