numpy中矩阵
时间:2019-08-22
本文章向大家介绍numpy中矩阵,主要包括numpy中矩阵使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
矩阵
Numpy中矩阵是ndarray的子类, 矩阵是二维的
Key_Function
1. 将字符串转为矩阵, 矩阵的行与行之间用分号隔开, 行间元素用空格隔开
2. 将Numpy的数组(如np.arange(9))转成矩阵
T属性: 获得矩阵的转置
I属性: 获得矩阵的逆矩阵
Code
import numpy as np A = np.mat('1 2 3; 4 5 6; 7 8 9') print(A) ''' [[1 2 3] [4 5 6] [7 8 9]] ''' print(A.T) # 矩阵的转置 ''' [[1 4 7] [2 5 8] [3 6 9]] ''' print(A.I) # 矩阵的逆矩阵 ''' [[ -4.50359963e+15 9.00719925e+15 -4.50359963e+15] [ 9.00719925e+15 -1.80143985e+16 9.00719925e+15] [ -4.50359963e+15 9.00719925e+15 -4.50359963e+15]] ''' print(np.mat(np.arange(9).reshape(3, 3))) # 将ndarray转成矩阵
从已有的矩阵创建新矩阵
Key_Function
np.eye函数, 创建单位矩阵
矩阵与标量相乘, 等于矩阵的各个元素分别与标量相乘
np.bmat函数, 创建复合矩阵, 类似与np.mat, 输入的是代表矩阵的字符串, 而不是代表数字的字符串
Code
import numpy as np A =np.eye(2) print(A) ''' [[ 1. 0.] [ 0. 1.]] ''' B = 2 * A print(B) ''' [[ 2. 0.] [ 0. 2.]] ''' print(np.bmat("A B; A B")) ''' [[ 1. 0. 2. 0.] [ 0. 1. 0. 2.] [ 1. 0. 2. 0.] [ 0. 1. 0. 2.]] '''
矩阵的通用函数
Key_Function
np.zeros_like函数, 将参数数组的元素全部设为0
flat属性, 是一个扁平迭代器, 将数组设置为1维, 并将各元素的值设置为设定值
np.frompyfunc函数, 创建通用函数, 可以将一组指定的操作封装成一个函数
Code
import numpy as np def ultimate_answer(a): result = np.zeros_like(a) # 创建一个与a形状相同, 并且元素全部为0的数组 result.flat = 42 # flat属性提供一个扁平迭代器, 逐个将数组各元素设置为设定的值 return result ufunc = np.frompyfunc(ultimate_answer, 1, 1) # 指定输入的参数为1, 输出的参数个数也是1 print(ufunc(np.arange(4))) # [array(42) array(42) array(42) array(42)] print(ufunc(np.arange(4).reshape(2, 2))) ''' [[array(42) array(42)] [array(42) array(42)]] '''
通用函数的方法
通用函数有四个方法, reduce, accumulate, reduceat, outer
这些方法只对输入两个参数, 输出一个参数的ufunc对象有效
Key_Function
reduce函数, 沿着指定的轴, 在连续的数组元素之间递归调用通用函数
accumulate函数, 将reduce函数的中间值存在一个数组中返回
reduceat函数, 按照索引, 返回索引范围内的reduce结果
Code
import numpy as np a = np.arange(9) print(a) # [0 1 2 3 4 5 6 7 8] print(np.add(a, a)) # np.add 需要两个输入参数, 一个输出参数 # [ 0 2 4 6 8 10 12 14 16] print(np.add.reduce(a)) # 沿着指定的轴, 对连续的数组元素递归地调用reduce # 36 print(np.add.accumulate(a)) # 递归的输入数组, 与reduce不同, 它会将中间运算结果存储并返回 # [ 0 1 3 6 10 15 21 28 36] # reduceat函数解析 print(np.add.reduceat(a, [0, 5, 2, 7])) # [10 5 20 15] print(np.add.reduce(a[0:5])) # 0小于5, 返回reducea[0:5]的结果 # 10 print(a[5]) # 5 print(np.add.reduce(a[2:7])) # 20 print(a[7]) # 7 # outer方法 print(np.add.outer(np.arange(3), a)) # 返回一个数组,它的秩等于输入的两数组的秩的和 ''' [[ 0 1 2 3 4 5 6 7 8] [ 1 2 3 4 5 6 7 8 9] [ 2 3 4 5 6 7 8 9 10]] '''
原文地址:https://www.cnblogs.com/draven123/p/11397450.html
- 关于python使用cv画矩形并填充颜色同时填充文字
- Go语言入门基础
- 【前端编程】加载第三方JS的各种姿势
- ubuntu16中遇到libgstreamer-0.10.so.0缺失解决方案
- 关于文件的压缩与解压
- Storm读取Kafka数据是如何实现的
- faster-rcnn在编译时遇到的一些问题
- 使用感知机训练加法模型
- 让你真正理解什么是SparkContext, SQLContext 和HiveContext
- 谈谈Go语言的反射三定律
- centos6.x升级protobuf操作流程.
- java调用c++函数的简单笔记
- 数据挖掘之聚类算法Apriori总结
- 数据挖掘之聚类算法K-Means总结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 五分钟极速搭建kubernetes集群
- 没想到吧!关于Dubbo的『消费端线程池模型』官网也写错了。
- Go内存管理之代码的逃逸分析
- MySQL读锁的区别和应用场景分析
- Apache NIFI 讲解(读完立即入门)
- 了解NiFi最大线程池和处理器并发任务设置
- 深入理解 Apache NIFI Connection
- 【Go语言探险】线上奇怪日志问题的排查
- 探索 Apache NIFI 集群的高可用
- 面试被问:Spring Boot中Tomcat是如何启动的?
- Spring Boot 实现定时任务的动态增删启停等管理!
- Apache NIFI ExecuteScript组件脚本使用教程
- Redis必会的性能监控指标汇总
- 带你体验Apache NIFI新建数据同步流程(NIFI入门)
- Spring JPA 存储库接口定义