Python科学计算库NumPy基础操作
2017-02-17 20:12
615 查看
NumPy是什么?能吃吗?好吃吗?
。。。吃货总是把问题想的这么简单。。。
来看看NumPy在官网上是怎么定义自己的吧。。
NumPy is the fundamental package for scientific computing with Python. It contains among other things:
1.a powerful N-dimensional array object
2.sophisticated (broadcasting) functions
3.tools for integrating C/C++ and Fortran code
4.useful linear algebra, Fourier transform, and random number capabilities
Besides its obvious scientific uses, NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.
看到了把,翻译成中文就是在数据处理方面屌得很。。
下面来看看具体的基本操作吧:
1.导入NumpPy这个库(安装的话,在之前的blog中已经介绍过啦),并将其简写方便使用:
2.Python自定义的数组并不是严格意义上的矩阵,我们可以使用np将其转换成np自己的矩阵类型
3.查看矩阵的维数,矩阵的形式,矩阵中元素的个数
4.设置输出类型
5.初始化N*M的元素为0的矩阵
6.初始化N*M的元素为1的矩阵
7.初始化N*M的元素为空的矩阵
8.生成一个1到10步长为2的矩阵
9.生成一个具有12个元素,shape为N*M的矩阵
10.生成一个1到20 被cut为12段的一个线性矩阵
11.关于矩阵的一些处理
12.矩阵中元素相乘和矩阵乘法
13.随机生成矩阵
14.关于矩阵的一个些操作
15.关于矩阵索引的一些操作和其他操作
16.元素的非零判别
17.矩阵排序
18.矩阵转置以及矩阵内元素的范围控制
19.对矩阵的一些控制输出
20.矩阵的分割
21.矩阵拷贝
22.矩阵合并
好啦就到这里吧,感觉是不是很像matlab,NumPy对矩阵的处理确实很强大!
。。。吃货总是把问题想的这么简单。。。
来看看NumPy在官网上是怎么定义自己的吧。。
NumPy is the fundamental package for scientific computing with Python. It contains among other things:
1.a powerful N-dimensional array object
2.sophisticated (broadcasting) functions
3.tools for integrating C/C++ and Fortran code
4.useful linear algebra, Fourier transform, and random number capabilities
Besides its obvious scientific uses, NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.
看到了把,翻译成中文就是在数据处理方面屌得很。。
下面来看看具体的基本操作吧:
1.导入NumpPy这个库(安装的话,在之前的blog中已经介绍过啦),并将其简写方便使用:
import numpy as np
2.Python自定义的数组并不是严格意义上的矩阵,我们可以使用np将其转换成np自己的矩阵类型
array00 = np.array([[1,2,3],[4,5,6]]) print(array00)
3.查看矩阵的维数,矩阵的形式,矩阵中元素的个数
print 'number of dim:',array00.ndim print 'shape:',array00.shape print 'size',array00.size
4.设置输出类型
array01 = np.array([1,2,3],dtype=np.int) print(array01.dtype)
5.初始化N*M的元素为0的矩阵
array01 = np.array([1,2,3],dtype=np.int) print(array01.dtype)
6.初始化N*M的元素为1的矩阵
array03 = np.ones((4,5)) print array03
7.初始化N*M的元素为空的矩阵
array04 = np.empty((4,5)) print array04
8.生成一个1到10步长为2的矩阵
array05 = np.arange(1,10,2) print array05
9.生成一个具有12个元素,shape为N*M的矩阵
array06 = np.arange(12).reshape((3,4)) print array06
10.生成一个1到20 被cut为12段的一个线性矩阵
array07 = np.linspace(1,20,12) print array07 print array07 = np.linspace(1,20,12).reshape((3,4)) print array07
11.关于矩阵的一些处理
#初始化两个1*4矩阵 array08 = np.array([4,5,6,7]) array09 = np.arange(4) #矩阵减法 print array08,array09 array10 = array08 - array09 print array10 #矩阵加法 print array08,array09 array10 = array08 + array09 print array10 #矩阵元素平方 print array08 array10 = array08 ** 2 print array10 #矩阵求sin print array08 array10 = np.sin(array08) print array10 #矩阵元素是否大于5 print array08 array10 = array08 > 5 print array10 #矩阵元素是否等于5 print array08 array10 = array08 == 5 print array10
12.矩阵中元素相乘和矩阵乘法
#初始化两个2*2矩阵 array11 = np.array([[1,1],[0,1]]) array12 = np.arange(4).reshape((2,2)) print array11 print print array12 print #矩阵中每个元素相乘 array13 = array11 * array12 #矩阵乘法 array14 = np.dot(array11,array12) array14 = array11.dot(array12) print array13 print print array14
13.随机生成矩阵
array15 = np.random.random((4,4)) print array15 print array15_1 = np.random.randint(1,100,10) print array15_1
14.关于矩阵的一个些操作
#随机生成矩阵 array15 = np.random.random((4,4)) print array15 array15_1 = np.random.randint(1,100,10) print array15_1 #方差 print np.var(array15_1) print #矩阵求和 print np.sum(array15) #求出矩阵中最小元素 print np.min(array15) #求出矩阵中最大元素 print np.max(array15) #矩阵行求和 print np.sum(array15,axis=0) #求出每行最小元素 print np.min(array15,axis=0) #求出每行最大元素 print np.max(array15,axis=0) print #列求和 print np.sum(array15,axis=1) #求出每列最小元素 print np.min(array15,axis=1) #求出每列最大元素 print np.max(array15,axis=1)
15.关于矩阵索引的一些操作和其他操作
array16 = np.arange(1,13).reshape((3,4)) print array16 #求矩阵最小值索引 print np.argmin(array16) #求矩阵最大值索引 print np.argmax(array16) #求矩阵平均值 print np.mean(array16) print np.average(array16) #求矩阵行平均值 print np.mean(array16,axis=0) #求矩阵列平均值 print np.mean(array16,axis=1) #求矩阵中位数 print np.median(array16) #矩阵元素累加 print np.cumsum(array16) #矩阵相邻元素累差 print np.diff(array16)
16.元素的非零判别
array17 = np.array([[1,2,3],[3,0,4],[0,2,2]]) print np.nonzero(array17)
17.矩阵排序
array18 = np.array([[4,2,3],[3,0,4],[0,5,2]]) #矩阵行排序 print np.sort(array18)
18.矩阵转置以及矩阵内元素的范围控制
array19 = np.arange(20).reshape(4,5) print array19 print #矩阵转置 print array19.T print np.transpose(array19) print #矩阵中小于4用4替代,大于8用8替代 print np.clip(array19,4,8)
19.对矩阵的一些控制输出
array21 = np.arange(3,15).reshape(3,4) print array21 print print (array21[2]) print print array21[1][1] print array21[1,1] print array21[1,1:] print #打印每一行 for row in array21: print row print #打印每一列 for column in array21.T: print column print #折叠成一个一维数组 print (array21.flatten()) print #打印数组中的每一个元素 for item in array21.flat: print item
20.矩阵的分割
array22 = np.arange(16).reshape(4,4) print array22 print #每两行分割 print np.split(array22,2,axis=0) print #每两列分割 print np.split(array22,2,axis=1) print #不等分割 print np.array_split(array22,3,axis=1) print #横向分割 print np.vsplit(array22,2) print #纵向分割 print np.hsplit(array22,2)
21.矩阵拷贝
array23 = np.arange(4) array24 = array23 print array23 print array24 #浅拷贝 print array23 is array24 array23[2] = 14 print print array23 print array24 print #深拷贝 array25 = array23.copy() print array23 print array25 print array23 is array25 array23[2] = 99 print print array23 print array25
22.矩阵合并
array26 = np.array([1,1,1]) array27 = np.array([2,2,2]) #横向合并 print np.vstack((array26,array27)) print #纵向合并 print np.hstack((array26,array27)) 列表变矩阵 print array26[np.newaxis,:] print array26[np.newaxis,:].shape print print array26[:,np.newaxis] print array26[:,np.newaxis].shape array28 = array26[:,np.newaxis] array29 = array27[:,np.newaxis] print print np.vstack((array28,array29)) print print np.hstack((array28,array29)) #多矩阵合并 print print np.concatenate((array28,array29,array29,array28),axis=0) print print np.concatenate((array28,array29,array29,array28),axis=1)
好啦就到这里吧,感觉是不是很像matlab,NumPy对矩阵的处理确实很强大!
相关文章推荐
- Python科学计算库NumPy基础操作
- python科学计算库numpy的使用
- Python科学计算基础包-Numpy
- python基础练习(三)—— numpy的矩阵基本操作
- Python科学计算库-Numpy的使用基础
- 关于python科学计算库numpy学习总结
- 【Python数据科学实训-第2模块】科学计算库Numpy
- python科学计算库numpy
- Python科学计算库Numpy的使用
- 【Python基础】之对字典进行排序操作(sort by the values of dict)
- python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
- Python:Mysql编程(基础操作命令)
- python基础教程之popen函数操作其它程序的输入和输出示例
- windows x64 安装python科学计算模块numpy
- Python 使用 Xlrd/xlwt 操作 Excel 分类: python基础学习 2014-03-17 12:06 958人阅读 评论(0) 收藏
- python科学计算六:scipy矩阵操作
- Numpy 数组基础操作--索引、组合、分割、复制、遍历、转换、序列化(四)
- Python3 一些基础操作记录
- python操作MongoDB基础知识