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. 大数据平台消息流系统Kafka

    Kafka前世今生 随着大数据时代的到来,数据中蕴含的价值日益得到展现,仿佛一座待人挖掘的金矿,引来无数的掘金者.但随着数据量越来越大,如何实时准确地收集并分析如此大的数据成为摆在所有从业人员面前的难 ...

  2. Qt5笔记之数据库(五)SQL表格模型QSqlTableModel

    教程网址:http://www.qter.org/portal.php?mod=view&aid=57 0.打开tablemodel.pro文件,加上: QT += coregui sql 注 ...

  3. 九度oj 题目1060:完数VS盈数

    题目1060:完数VS盈数 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6461 解决:2426 题目描述: 一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1.则称其 ...

  4. Android TextView内容过长加省略号

    在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下: 在xml中: android:ellipsize = "end" //省略号在结尾 ...

  5. android开发里跳过的坑-android studio 错误 Could not find junit:junit:4.12

    在导入一个新项目时,出现错误Could not find junit:junit:4.12,网上大多是说缺少junit的jar包,但我查看了安装目录下是有jnuit包的,并且新建的项目都没有问题.几经 ...

  6. Linux下汇编语言学习笔记20 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  7. nyoj_308_Substring_201405091611

    Substring 时间限制:1000 ms  |           内存限制:65535 KB 难度:1   描述 You are given a string input. You are to ...

  8. Codeforces 651C Watchmen【模拟】

    题意: 求欧几里得距离与曼哈顿距离相等的组数. 分析: 化简后得到xi=xj||yi=yj,即为求x相等 + y相等 - x与y均相等. 代码: #include<iostream> #i ...

  9. Linux系统备份还原工具1(DD)(应用实例)

    DD使用教程:http://www.cnblogs.com/EasonJim/p/7442223.html 以下实例没经过大量测试,可能在一些机器上不会有效. 一般围绕以下几点进行设置: 1.dd完后 ...

  10. 实战恢复2950交换机的IOS

    本来想用两台交换机做实验的,可是通过console口进入其中一台交换机后却发现这个台交换器的IOS文件丢失了 本来正常进入交换机后应该是首先进入到用户模式的,而且提示符应该是">&qu ...