1.NumPy访问【数组&矩阵】

2.矩阵的运算

3.NumPy通用函数

4.NumPy矩阵的合并和分割

print "**********Numpy访问(数组&矩阵)***********"
def f(x,y):
return 10*x+y
arr8=np.fromfunction(f,(4,3),dtype=int) #创建矩阵
print arr8
print "****索引访问矩阵****"
print arr8[2,1]
print "****切片访问矩阵****"
print arr8[0:2,:] #访问矩阵前2行
#切片操作就是在索引操作的基础上对行和列分别操作
print arr8[1:3,1:2] #访问矩阵的第一行和第二行的第一列(下标从0开始)
print arr8[0:2,] #矩阵前2行
print "矩阵第一列"
print arr8[:,1]
print "矩阵最后一行"
print arr8[3:4,]
print arr8[-1]
print "****迭代器访问矩阵****"
for row in arr8:
print row
for i in [0,1,2]: #修改矩阵的值
row[i]+=8
print arr8
for element in arr8.flat: #访问矩阵中的元素
print element,
# element +=20
# print element,
print "**********NumPy【矩阵的运算】*************"
ar1=np.array([[2,1],[1,2]])
ar2=np.array([[1,2],[3,4]])
print ar1-ar2
print ar1**2
print ar2*3
print ar1*ar2 #普通乘法
print np.dot(ar1,ar2) #矩阵乘法
print ar2.T #转置
print np.linalg.inv(ar2) #矩阵的逆
print ar2.sum() #矩阵元素求和
print ar2.max() #矩阵最大的元素
ar3=np.array([[1,2],[3,4],[5,6]])
print ar3.cumsum(1) #按行累计总和
print "**************"
print ar2
ar4=np.array([1,8,9,0,5])
ar5=np.array([[1,8,9,0,5],[2,7,0,6,4],[3,0,6,5,9]])
print ar4
print np.nonzero(ar4) #返回数组非零元素的位置
print np.nonzero(ar5) #第二个数组返回非零元素的位置
print "**************NumPy通用函数******************"
print np.exp(ar1)
print np.sin(ar1) #弧度制
print np.sqrt(ar1) #开方函数
print np.add(ar1,ar2)
print "*************NumPy 矩阵的合并和分割***************"
ar7=np.vstack((ar1,ar2)) #纵向合并矩阵
print ar7
ar8=np.hstack((ar1,ar2))
print ar8 #横向合并矩阵
print "纵向分割"
print np.vsplit(ar7,2)
print "横向分割"
print np.hsplit(ar8,2)

结果:

  

**********Numpy访问(数组&矩阵)***********
[[ 0 1 2]
[10 11 12]
[20 21 22]
[30 31 32]]
****索引访问矩阵****
21
****切片访问矩阵****
[[ 0 1 2]
[10 11 12]]
[[11]
[21]]
[[ 0 1 2]
[10 11 12]]
矩阵第一列
[ 1 11 21 31]
矩阵最后一行
[[30 31 32]]
[30 31 32]
****迭代器访问矩阵****
[0 1 2]
[10 11 12]
[20 21 22]
[30 31 32]
[[ 8 9 10]
[18 19 20]
[28 29 30]
[38 39 40]]
8 9 10 18 19 20 28 29 30 38 39 40 **********NumPy【矩阵的运算】*************
[[ 1 -1]
[-2 -2]]
[[4 1]
[1 4]]
[[ 3 6]
[ 9 12]]
[[2 2]
[3 8]]
[[ 5 8]
[ 7 10]]
[[1 3]
[2 4]]
[[-2. 1. ]
[ 1.5 -0.5]]
10
4
[[ 1 3]
[ 3 7]
[ 5 11]]
**************
[[1 2]
[3 4]]
[1 8 9 0 5]
(array([0, 1, 2, 4]),)
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]), array([0, 1, 2, 4, 0, 1, 3, 4, 0, 2, 3, 4]))
**************NumPy通用函数******************
[[ 7.3890561 2.71828183]
[ 2.71828183 7.3890561 ]]
[[ 0.90929743 0.84147098]
[ 0.84147098 0.90929743]]
[[ 1.41421356 1. ]
[ 1. 1.41421356]]
[[3 3]
[4 6]]
*************NumPy 矩阵的合并和分割***************
[[2 1]
[1 2]
[1 2]
[3 4]]
[[2 1 1 2]
[1 2 3 4]]
纵向分割
[array([[2, 1],
[1, 2]]), array([[1, 2],
[3, 4]])]
横向分割
[array([[2, 1],
[1, 2]]), array([[1, 2],
[3, 4]])]

Python---NumPy模块---矩阵操作的更多相关文章

  1. python OS 模块 文件目录操作

    Python OS 模块 文件目录操作 os模块中包含了一系列文件操作的函数,这里介绍的是一些在Linux平台上应用的文件操作函数.由于Linux是C写的,低层的libc库和系统调用的接口都是C AP ...

  2. Python numpy中矩阵的用法总结

    关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...

  3. python numpy模块

    目录 numpy模块 一维数组 二维数组(用的最多的) 获取多维数组的行和列 多维数组的索引 高级功能 多维数组的元素的替换 通过函数方法创建多维数组 矩阵的运算 点乘和转置(了解) 点乘必须 m*n ...

  4. Python中的矩阵操作

    Numpy 通过观察Python的自有数据类型,我们可以发现Python原生并不提供多维数组的操作,那么为了处理矩阵,就需要使用第三方提供的相关的包. NumPy 是一个非常优秀的提供矩阵操作的包.N ...

  5. Python MySQLdb模块连接操作mysql数据库实例_python

    mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...

  6. [Python]-numpy模块-机器学习Python入门《Python机器学习手册》-01-向量、矩阵和数组

    <Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...

  7. python numpy 模块简单介绍

    用python自带的list去处理数组效率很低, numpy就诞生了, 它提供了ndarry对象,N-dimensional object, 是存储单一数据类型的多维数组,即所有的元素都是同一种类型. ...

  8. python numpy模块使用笔记(更新)

    np.arange(int a) 生成一个一维array,元素个数是a个,元素是0到a-1 注意arange不能直接生成多维array np.arange(int a).reshape(int b,i ...

  9. python numPy模块 与numpy里的数据类型、数据类型对象dtype

    学习链接:http://www.runoob.com/numpy/numpy-tutorial.html 官方链接:https://numpy.org/devdocs/user/quickstart. ...

随机推荐

  1. pip 打包项目配置库

    打包项目中配置库(filename为文件名,可修改) pip freeze > filename.txt 安装配置文件中所有的库包 pip install -r filename.txt 如提示 ...

  2. Error: Divergence detected in AMG solver: k

    ** Error: Divergence detected in AMG solver: k A:Since you were working on convergence issue from pa ...

  3. 【转】WEB前端调优

    首先从一次完整的的请求说起:(以此为例get,www,baidu.com) 1,webbrower 发出request, 2,然后解析www.baidu.com为ip,找到ip的服务器, 3,服务器处 ...

  4. Leetcode 147.对链表进行排序

    对链表进行插入排序 对链表进行插入排序. 插入排序算法: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表. 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它 ...

  5. restful(3):认证、权限、频率 & 解析器、路由控制、分页、渲染器、版本

    models.py中: class UserInfo(models.Model): name = models.CharField(max_length=32) psw = models.CharFi ...

  6. string数据类型操作【四】

    keys *    用于查找所有的key值 exists mykey     #判断该键是否存在,存在返回1,否则返回0. del mykey        删除键(存在就删除返回1,不存在返回为0) ...

  7. 使用流的方式去进行post请求解决中文乱码问题返回xml格式

    /** * 请求post * @Title: getHttpURLConnection * @Description: TODO(这里用一句话描述这个方法的作用) * @param: @param u ...

  8. CentOS6 设置AliNetflow 环境

    CentOS6 设置AliNetflow 环境 Install OS 这一步略过. 只要保证操作系统是CentOS6.4 并且网络通畅 Install Python2.7.8 设置YUM 我的网络环境 ...

  9. [Jexus系列] 一、安装并运行 Jexus

    注意,本教程使用的jexus版本为5.8.3专业版,操作系统为 Ubunutu 16.04 64位 一.创建默认站点 不熟悉vim的可以看这个: vim超简单入门教程 sudo mkdir -p /v ...

  10. python:functools之partial

    示例:from operator import addimport functoolsprint add(1,2) #3add1 = functools.partial(add,1)print add ...