Python---NumPy模块---矩阵操作
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模块---矩阵操作的更多相关文章
- python OS 模块 文件目录操作
Python OS 模块 文件目录操作 os模块中包含了一系列文件操作的函数,这里介绍的是一些在Linux平台上应用的文件操作函数.由于Linux是C写的,低层的libc库和系统调用的接口都是C AP ...
- Python numpy中矩阵的用法总结
关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...
- python numpy模块
目录 numpy模块 一维数组 二维数组(用的最多的) 获取多维数组的行和列 多维数组的索引 高级功能 多维数组的元素的替换 通过函数方法创建多维数组 矩阵的运算 点乘和转置(了解) 点乘必须 m*n ...
- Python中的矩阵操作
Numpy 通过观察Python的自有数据类型,我们可以发现Python原生并不提供多维数组的操作,那么为了处理矩阵,就需要使用第三方提供的相关的包. NumPy 是一个非常优秀的提供矩阵操作的包.N ...
- Python MySQLdb模块连接操作mysql数据库实例_python
mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...
- [Python]-numpy模块-机器学习Python入门《Python机器学习手册》-01-向量、矩阵和数组
<Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...
- python numpy 模块简单介绍
用python自带的list去处理数组效率很低, numpy就诞生了, 它提供了ndarry对象,N-dimensional object, 是存储单一数据类型的多维数组,即所有的元素都是同一种类型. ...
- python numpy模块使用笔记(更新)
np.arange(int a) 生成一个一维array,元素个数是a个,元素是0到a-1 注意arange不能直接生成多维array np.arange(int a).reshape(int b,i ...
- python numPy模块 与numpy里的数据类型、数据类型对象dtype
学习链接:http://www.runoob.com/numpy/numpy-tutorial.html 官方链接:https://numpy.org/devdocs/user/quickstart. ...
随机推荐
- Java中static、final、static final的区别
final: final可以修饰:属性,方法,类,局部变量(方法中的变量) final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变. final修饰的属性跟具体对象有关,在运行期 ...
- json数据的格式,JavaScript、jQuery读取json数据
JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON的特点: JSON 是纯文本 JSON 具有“自我描述性”(人类可读) JSON 具有层级 ...
- devstck 部署OpenStack Queens allinone
1.环境信息 1台虚拟机 8C16G CentOS 7.2 2.准备工作 #!/bin/bash set -x #配置aliyun的centos和epel mirror mkdir /etc/yu ...
- ZOJ 3905 Cake
Cake Time Limit: 4 Seconds Memory Limit: 65536 KB Alice and Bob like eating cake very much. One ...
- runOnUiThread在子进程中更新主进程UI
package com.pingyijinren.test; import android.support.v7.app.AppCompatActivity; import android.os.Bu ...
- 洛谷 P3456 [POI2007]GRZ-Ridges and Valleys
P3456 [POI2007]GRZ-Ridges and Valleys 题意翻译 给定一个地图,为小朋友想要旅行的区域,地图被分为n*n的网格,每个格子(i,j) 的高度w(i,j)是给定的.若两 ...
- Ubuntu 16.04 GNOME下解决Sublime Text3中文输入(ibus)(转)
解决方法: 1.进入Sublime Text3插件管理文件夹 cd ~/.config/sublime-text-3/Packages 2.获取InputHelper插件 git clone http ...
- MongoDB小结08 - update【$pull】
它可以删除所匹配的值,如果[1,1,2,1] 执行pull 1 后,只剩下[2]
- JFileChooser 中文API
javax.swing类 JFileChooser java.lang.Object java.awt.Component java.awt.Container javax.swing.JCompon ...
- android的ListView点击item使item展开的做法
直接上代码把.主要是又一次给item measure高度,直接上代码把 import java.util.ArrayList; import android.app.Activity; import ...