光环大数据NumPy常用方法总结

编辑:光环大数据 来源: 互联网 时间: 2017-10-16 11:25 阅读:

  光环大数据NumPy常用方法总结。NumPy是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nestedliststructure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。NumPy(NumericPython)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:LawrenceLivermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。

numpy中的数据类型,ndarray类型,和标准库中的array.array并不一样。

ndarray的创建

>>>importnumpyasnp>>>a=np.array([2,3,4])>>>aarray([2,3,4])>>>a.dtypedtype('int64')>>>b=np.array([1.2,3.5,5.1])>>>b.dtypedtype('float64')

二维的数组

>>>b=np.array([(1.5,2,3),(4,5,6)])>>>barray([[1.5,2.,3.],[4.,5.,6.]])

创建时指定类型

>>>c=np.array([[1,2],[3,4]],dtype=complex)>>>carray([[1.+0.j,2.+0.j],[3.+0.j,4.+0.j]])

创建一些特殊的矩阵

>>>np.zeros((3,4))array([[0.,0.,0.,0.],[0.,0.,0.,0.],[0.,0.,0.,0.]])>>>np.ones((2,3,4),dtype=np.int16)#dtypecanalsobespecifiedarray([[[1,1,1,1],[1,1,1,1],[1,1,1,1]],[[1,1,1,1],[1,1,1,1],[1,1,1,1]]],dtype=int16)>>>np.empty((2,3))#uninitialized,outputmayvaryarray([[3.73603959e-262,6.02658058e-154,6.55490914e-260],[5.30498948e-313,3.14673309e-307,1.00000000e+000]])

创建一些有特定规律的矩阵

>>>np.arange(10,30,5)array([10,15,20,25])>>>np.arange(0,2,0.3)#itacceptsfloatargumentsarray([0.,0.3,0.6,0.9,1.2,1.5,1.8])>>>fromnumpyimportpi>>>np.linspace(0,2,9)#9numbersfrom0to2array([0.,0.25,0.5,0.75,1.,1.25,1.5,1.75,2.])>>>x=np.linspace(0,2*pi,100)#usefultoevaluatefunctionatlotsofpoints>>>f=np.sin(x)

一些基本的运算

加减乘除三角函数逻辑运算

>>>a=np.array([20,30,40,50])>>>b=np.arange(4)>>>barray([0,1,2,3])>>>c=a-b>>>carray([20,29,38,47])>>>b**2array([0,1,4,9])>>>10*np.sin(a)array([9.12945251,-9.88031624,7.4511316,-2.62374854])>>>a<35array([True,True,False,False],dtype=bool)

矩阵运算

matlab中有.*,./等等

但是在numpy中,如果使用+,-,×,/优先执行的是各个点之间的加减乘除法

如果两个矩阵(方阵)可既以元素之间对于运算,又能执行矩阵运算会优先执行元素之间的运算

>>>importnumpyasnp>>>A=np.arange(10,20)>>>B=np.arange(20,30)>>>A+Barray([30,32,34,36,38,40,42,44,46,48])>>>A*Barray([200,231,264,299,336,375,416,459,504,551])>>>A/Barray([0,0,0,0,0,0,0,0,0,0])>>>B/Aarray([2,1,1,1,1,1,1,1,1,1])

如果需要执行矩阵运算,一般就是矩阵的乘法运算

>>>A=np.array([1,1,1,1])>>>B=np.array([2,2,2,2])>>>A.reshape(2,2)array([[1,1],[1,1]])>>>B.reshape(2,2)array([[2,2],[2,2]])>>>A*Barray([2,2,2,2])>>>np.dot(A,B)8>>>A.dot(B)8

一些常用的全局函数

>>>B=np.arange(3)>>>Barray([0,1,2])>>>np.exp(B)array([1.,2.71828183,7.3890561])>>>np.sqrt(B)array([0.,1.,1.41421356])>>>C=np.array([2.,-1.,4.])>>>np.add(B,C)array([2.,0.,6.])

矩阵的索引分片遍历

>>>a=np.arange(10)**3>>>aarray([0,1,8,27,64,125,216,343,512,729])>>>a[2]8>>>a[2:5]array([8,27,64])>>>a[:6:2]=-1000#equivalenttoa[0:6:2]=-1000;fromstarttoposition6,exclusive,setevery2ndelementto-1000>>>aarray([-1000,1,-1000,27,-1000,125,216,343,512,729])>>>a[::-1]#reversedaarray([729,512,343,216,125,-1000,27,-1000,1,-1000])>>>foriina:...print(i**(1/3.))...nan1.0nan3.0nan5.06.07.08.09.0

矩阵的遍历

>>>importnumpyasnp>>>b=np.arange(16).reshape(4,4)>>>forrowinb:...print(row)...[0123][4567][891011][12131415]>>>fornodeinb.flat:...print(node)...0123456789101112131415

矩阵的特殊运算

改变矩阵形状--reshape

>>>a=np.floor(10*np.random.random((3,4)))>>>aarray([[6.,5.,1.,5.],[5.,5.,8.,9.],[5.,5.,9.,7.]])>>>a.ravel()array([6.,5.,1.,5.,5.,5.,8.,9.,5.,5.,9.,7.])>>>aarray([[6.,5.,1.,5.],[5.,5.,8.,9.],[5.,5.,9.,7.]])

resize和reshape的区别

resize会改变原来的矩阵,reshape并不会

>>>aarray([[6.,5.,1.,5.],[5.,5.,8.,9.],[5.,5.,9.,7.]])>>>a.reshape(2,-1)array([[6.,5.,1.,5.,5.,5.],[8.,9.,5.,5.,9.,7.]])>>>aarray([[6.,5.,1.,5.],[5.,5.,8.,9.],[5.,5.,9.,7.]])>>>a.resize(2,6)>>>aarray([[6.,5.,1.,5.,5.,5.],[8.,9.,5.,5.,9.,7.]])

矩阵的合并

>>>a=np.floor(10*np.random.random((2,2)))>>>aarray([[8.,8.],[0.,0.]])>>>b=np.floor(10*np.random.random((2,2)))>>>barray([[1.,8.],[0.,4.]])>>>np.vstack((a,b))array([[8.,8.],[0.,0.],[1.,8.],[0.,4.]])>>>np.hstack((a,b))array([[8.,8.,1.,8.],[0.,0.,0.,4.]])

Python培训,就选光环大数据!


大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服

你可能也喜欢这些

在线客服咨询

领取资料

X
立即免费领取

请准确填写您的信息

点击领取
#第三方统计代码(模版变量) '); })();
'); })();