Python科学计算库NumPy基础操作
2018-02-06 17:49
453 查看
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中已经介绍过啦),并将其简写方便使用:
[python] view
plain copy
import numpy as np
2.Python自定义的数组并不是严格意义上的矩阵,我们可以使用np将其转换成np自己的矩阵类型
[python] view
plain copy
array00 = np.array([[1,2,3],[4,5,6]])
print(array00)
3.查看矩阵的维数,矩阵的形式,矩阵中元素的个数
[python] view
plain copy
print 'number of dim:',array00.ndim
print 'shape:',array00.shape
print 'size',array00.size
4.设置输出类型
[python] view
plain copy
array01 = np.array([1,2,3],dtype=np.int)
print(array01.dtype)
5.初始化N*M的元素为0的矩阵
[python] view
plain copy
array01 = np.array([1,2,3],dtype=np.int)
print(array01.dtype)
6.初始化N*M的元素为1的矩阵
[python] view
plain copy
array03 = np.ones((4,5))
print array03
7.初始化N*M的元素为空的矩阵
[python] view
plain copy
array04 = np.empty((4,5))
print array04
8.生成一个1到10步长为2的矩阵
[python] view
plain copy
array05 = np.arange(1,10,2)
print array05
9.生成一个具有12个元素,shape为N*M的矩阵
[python] view
plain copy
array06 = np.arange(12).reshape((3,4))
print array06
10.生成一个1到20 被cut为12段的一个线性矩阵
[python] view
plain copy
array07 = np.linspace(1,20,12)
print array07
print
array07 = np.linspace(1,20,12).reshape((3,4))
print array07
11.关于矩阵的一些处理
[python] view
plain copy
#初始化两个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.矩阵中元素相乘和矩阵乘法
[python] view
plain copy
#初始化两个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.随机生成矩阵
[python] view
plain copy
array15 = np.random.random((4,4))
print array15
print
array15_1 = np.random.randint(1,100,10)
print array15_1
14.关于矩阵的一个些操作
[python] view
plain copy
#随机生成矩阵
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.关于矩阵索引的一些操作和其他操作
[python] view
plain copy
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.元素的非零判别
[python] view
plain copy
array17 = np.array([[1,2,3],[3,0,4],[0,2,2]])
print np.nonzero(array17)
17.矩阵排序
[python] view
plain copy
array18 = np.array([[4,2,3],[3,0,4],[0,5,2]])
#矩阵行排序
print np.sort(array18)
18.矩阵转置以及矩阵内元素的范围控制
[python] view
plain copy
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.对矩阵的一些控制输出
[python] view
plain copy
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.矩阵的分割
[python] view
plain copy
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.矩阵拷贝
[python] view
plain copy
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.矩阵合并
[python] view
plain copy
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对矩阵的处理确实很强大!
。。。吃货总是把问题想的这么简单。。。
来看看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中已经介绍过啦),并将其简写方便使用:
[python] view
plain copy
import numpy as np
2.Python自定义的数组并不是严格意义上的矩阵,我们可以使用np将其转换成np自己的矩阵类型
[python] view
plain copy
array00 = np.array([[1,2,3],[4,5,6]])
print(array00)
3.查看矩阵的维数,矩阵的形式,矩阵中元素的个数
[python] view
plain copy
print 'number of dim:',array00.ndim
print 'shape:',array00.shape
print 'size',array00.size
4.设置输出类型
[python] view
plain copy
array01 = np.array([1,2,3],dtype=np.int)
print(array01.dtype)
5.初始化N*M的元素为0的矩阵
[python] view
plain copy
array01 = np.array([1,2,3],dtype=np.int)
print(array01.dtype)
6.初始化N*M的元素为1的矩阵
[python] view
plain copy
array03 = np.ones((4,5))
print array03
7.初始化N*M的元素为空的矩阵
[python] view
plain copy
array04 = np.empty((4,5))
print array04
8.生成一个1到10步长为2的矩阵
[python] view
plain copy
array05 = np.arange(1,10,2)
print array05
9.生成一个具有12个元素,shape为N*M的矩阵
[python] view
plain copy
array06 = np.arange(12).reshape((3,4))
print array06
10.生成一个1到20 被cut为12段的一个线性矩阵
[python] view
plain copy
array07 = np.linspace(1,20,12)
print array07
array07 = np.linspace(1,20,12).reshape((3,4))
print array07
11.关于矩阵的一些处理
[python] view
plain copy
#初始化两个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.矩阵中元素相乘和矩阵乘法
[python] view
plain copy
#初始化两个2*2矩阵
array11 = np.array([[1,1],[0,1]])
array12 = np.arange(4).reshape((2,2))
print array11
print array12
#矩阵中每个元素相乘
array13 = array11 * array12
#矩阵乘法
array14 = np.dot(array11,array12)
array14 = array11.dot(array12)
print array13
print array14
13.随机生成矩阵
[python] view
plain copy
array15 = np.random.random((4,4))
print array15
array15_1 = np.random.randint(1,100,10)
print array15_1
14.关于矩阵的一个些操作
[python] view
plain copy
#随机生成矩阵
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 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 np.sum(array15,axis=1)
#求出每列最小元素
print np.min(array15,axis=1)
#求出每列最大元素
print np.max(array15,axis=1)
15.关于矩阵索引的一些操作和其他操作
[python] view
plain copy
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.元素的非零判别
[python] view
plain copy
array17 = np.array([[1,2,3],[3,0,4],[0,2,2]])
print np.nonzero(array17)
17.矩阵排序
[python] view
plain copy
array18 = np.array([[4,2,3],[3,0,4],[0,5,2]])
#矩阵行排序
print np.sort(array18)
18.矩阵转置以及矩阵内元素的范围控制
[python] view
plain copy
array19 = np.arange(20).reshape(4,5)
print array19
#矩阵转置
print array19.T
print np.transpose(array19)
#矩阵中小于4用4替代,大于8用8替代
print np.clip(array19,4,8)
19.对矩阵的一些控制输出
[python] view
plain copy
array21 = np.arange(3,15).reshape(3,4)
print array21
print (array21[2])
print array21[1][1]
print array21[1,1]
print array21[1,1:]
#打印每一行
for row in array21:
print row
#打印每一列
for column in array21.T:
print column
#折叠成一个一维数组
print (array21.flatten())
#打印数组中的每一个元素
for item in array21.flat:
print item
20.矩阵的分割
[python] view
plain copy
array22 = np.arange(16).reshape(4,4)
print array22
#每两行分割
print np.split(array22,2,axis=0)
#每两列分割
print np.split(array22,2,axis=1)
#不等分割
print np.array_split(array22,3,axis=1)
#横向分割
print np.vsplit(array22,2)
#纵向分割
print np.hsplit(array22,2)
21.矩阵拷贝
[python] view
plain copy
array23 = np.arange(4)
array24 = array23
print array23
print array24
#浅拷贝
print array23 is array24
array23[2] = 14
print array23
print array24
#深拷贝
array25 = array23.copy()
print array23
print array25
print array23 is array25
array23[2] = 99
print array23
print array25
22.矩阵合并
[python] view
plain copy
array26 = np.array([1,1,1])
array27 = np.array([2,2,2])
#横向合并
print np.vstack((array26,array27))
#纵向合并
print np.hstack((array26,array27))
列表变矩阵
print array26[np.newaxis,:]
print array26[np.newaxis,:].shape
print array26[:,np.newaxis]
print array26[:,np.newaxis].shape
array28 = array26[:,np.newaxis]
array29 = array27[:,np.newaxis]
print np.vstack((array28,array29))
print np.hstack((array28,array29))
#多矩阵合并
print np.concatenate((array28,array29,array29,array28),axis=0)
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文件基础之(文件操作)
- Python3 一些基础操作记录
- Python基础:list列表以及序列常用操作
- Spark基础转换及行动操作(python实验)
- Python-Numpy(2)Array数组操作
- Python基础--文件操作和集合
- Python 基础 - 6 字符串(str)2 - 子字符串操作和字符串格式化
- python科学计算_numpy_广播与下标
- Python基础--通用序列操作
- webdriver基础python版(一)简单的浏览器操作
- Python基础--第6章 函数操作——功能化程序片段的封装