读书笔记五--numpy
数组转置和轴对换
转置是重塑的一种特殊形式,返回的是源数据的视图(不会进行任何复制操作)。数组不仅有transpose方法,还有一个特殊的T属性:
arr=np.arange().reshape((,)) arr
Out[]:
array([[ , , , , ],
[ , , , , ],
[, , , , ]]) arr.T
Out[]:
array([[ , , ],
[ , , ],
[ , , ],
[ , , ],
[ , , ]])
进行矩阵计算时,经常需要用到该操作,比如利用np.dot计算矩阵内积:
arr=np.random.randn(,) np.dot(arr.T,arr)
Out[]:
array([[2.39679519, 0.23607287, 0.27316386],
[0.23607287, 5.3207093 , 0.6367557 ],
[0.27316386, 0.6367557 , 3.50480009]])
对于高维数组,transpose需要得到一个由轴编号组成的元组才能对这些轴进行转置:
arr=np.arange().reshape((,,)) arr
Out[]:
array([[[ , , , ],
[ , , , ]], [[ , , , ],
[, , , ]]]) arr.transpose((,,))
Out[]:
array([[[ , , , ],
[ , , , ]], [[ , , , ],
[, , , ]]])
还有一个swapaxes方法,它需要接收一对轴编号:
arr
Out[]:
array([[[ , , , ],
[ , , , ]], [[ , , , ],
[, , , ]]]) arr.swapaxes(,)
Out[]:
array([[[ , ],
[ , ],
[ , ],
[ , ]], [[ , ],
[ , ],
[, ],
[, ]]])
swapaxes也是返回源数据的视图(不会进行任何复制操作)。
通用函数:快速的元素级数组函数
x=np.random.randn(8) x
Out[7]:
array([-0.45367765, 0.45448697, 0.05901557, -1.14350864, 0.93985719,
-1.37405764, 0.54604076, -1.52919879]) y=np.random.randn(8) y
Out[9]:
array([-2.44401238, -0.57907323, -2.42303926, 0.25004382, 0.78757902,
0.13324314, 0.8643189 , 0.6892275 ]) #x,y中的每个元素进行对比,选较大的值
np.maximum(x,y)
Out[10]:
array([-0.45367765, 0.45448697, 0.05901557, 0.25004382, 0.93985719,
0.13324314, 0.8643189 , 0.6892275 ])
有些ufunc可以返回多个数组,modf就是一个例子,它是Python内置函数divmod的矢量化版本,用于浮点数组的小数和整数部分。
arr=np.random.randn(7)*5 arr
Out[12]:
array([ 1.36965276, -0.29453957, 5.0043914 , -3.93568688, -4.50608498,
1.40926456, -1.99294205]) #modf返回的2个数组分别是浮点数的小数部分和整数部分
np.modf(arr)
Out[13]:
(array([ 0.36965276, -0.29453957, 0.0043914 , -0.93568688, -0.50608498,
0.40926456, -0.99294205]), array([ 1., -0., 5., -3., -4., 1., -1.]))
| abs、fabs | 计算整数、浮点数或复数的绝对值。对于非复数值,可以使用更快的fabs |
| sqrt | 计算各元素的平方根,相当于arr**0.5 |
| square | 计算各元素的平方,相当于arr**2 |
| exp | 计算各元素的指数 |
| add | 将数组中对应的元素相加 |
| substract | 从第一个数组中减去第二个数组中的元素 |
| multiply | 数组元素相乘 |
| divide、floor_divide | 除法或向下圆整除法(丢弃余数) |
利用数组进行数据处理
points=np.arange(-5,5,0.01) xs,ys=np.meshgrid(points,points) ys
Out[16]:
array([[-5. , -5. , -5. , ..., -5. , -5. , -5. ],
[-4.99, -4.99, -4.99, ..., -4.99, -4.99, -4.99],
[-4.98, -4.98, -4.98, ..., -4.98, -4.98, -4.98],
...,
[ 4.97, 4.97, 4.97, ..., 4.97, 4.97, 4.97],
[ 4.98, 4.98, 4.98, ..., 4.98, 4.98, 4.98],
[ 4.99, 4.99, 4.99, ..., 4.99, 4.99, 4.99]])
现在把这两个数组当做两个浮点数那样编写表达式:
import matplotlib.pyplot as plt z=np.sqrt(xs**2+ys**2) z
Out[21]:
array([[7.07106781, 7.06400028, 7.05693985, ..., 7.04988652, 7.05693985,
7.06400028],
[7.06400028, 7.05692568, 7.04985815, ..., 7.04279774, 7.04985815,
7.05692568],
[7.05693985, 7.04985815, 7.04278354, ..., 7.03571603, 7.04278354,
7.04985815],
...,
[7.04988652, 7.04279774, 7.03571603, ..., 7.0286414 , 7.03571603,
7.04279774],
[7.05693985, 7.04985815, 7.04278354, ..., 7.03571603, 7.04278354,
7.04985815],
[7.06400028, 7.05692568, 7.04985815, ..., 7.04279774, 7.04985815,
7.05692568]])
plt.imshow(z,cmap=plt.cm.gray);plt.colorbar()
Out[22]: <matplotlib.colorbar.Colorbar at 0xc95aef0>
读书笔记五--numpy的更多相关文章
- 悟道—位IT高管20年的职场心经(读书笔记五)
悟道--一位IT高管20年的职场心经 第五章 搞定老板 "老板就是老板" 这一点,你可能会忘了,他一定不会忘: "老板不会总是老板" 这一点,他可能会忘,你最好 ...
- 《JavaScript 高级程序设计》读书笔记五 引用类型
一 Object类型 a.两种创建方式: 1.new+构造函数Object; 2.对象字面量表示法: b.两种访问属性方式: 1.点表示法(.属性): 2.方括号([“属性”]): 二 Arr ...
- Android驱动开发读书笔记五
第五章 本章介绍了S3C6410开发板的功能,开发板的不同主要是在烧录嵌入式系统的方式不同,以及如何在此开发板上安装Android. 1.安装串口调试工具minicom 首先需要一根USB转串口线,由 ...
- 机器学习实战读书笔记(五)Logistic回归
Logistic回归的一般过程 1.收集数据:采用任意方法收集 2.准备数据:由于需要进行距离计算,因此要求数据类型为数值型.另外,结构化数据格式则最佳 3.分析数据:采用任意方法对数据进行分析 4. ...
- 《实战Java高并发程序设计》读书笔记五
第五章 并行模式与算法 1.单例模式 是一种对象创建模式,用于产生一个对象的具体实例,它可以确保系统一个类只产生一个实例. 对于频繁创建使用的对象可以省略new 操作花费的时间,可以减少系统开销. 由 ...
- 锋利的jQuery--编写jQuery插件(读书笔记五)[完结篇]
1.表单验证插件Validation 2.表单插件Form 3.动态事件绑定插件livequery 可以为后来的元素绑定事件 类似于jQuery中的live()方法 4.jQuer ...
- 《CLR.via.C#第三版》第二部分第10,11章节读书笔记(五)
第10章是对 属性 做阐述 属性本质上是方法 匿名类型的使用: }; Console.WriteLine("Name={0},Year={1}",o1.Name,o1.Year); ...
- R语言实战读书笔记(五)高级数据管理
5.2.1 数据函数 abs: sqrt: ceiling:求不小于x的最小整数 floor:求不大于x的最大整数 trunc:向0的方向截取x中的整数部分 round:将x舍入为指定位的小数 sig ...
- Machine Learning for hackers读书笔记(五)回归模型:预测网页访问量
线性回归函数 model<-lm(Weight~Height,data=?) coef(model):得到回归直线的截距 predict(model):预测 residuals(model):残 ...
随机推荐
- chrome表单禁止自动填充密码
在用户登录成功以后,chrome会提示用户记住密码. 用户退出以后若前往注册.忘记密码页时会自动填充密码. 若不希望自动填充密码,只需在input里设置autoComplete="new-p ...
- 怎么进行代码审查(Code Review)
代码审查的重要性 代码审查是熟悉软件架构,了解软件业务逻辑的好方法.学习代码是需要切入点的,一个上百万行代码的系统,从哪里开始着手?只能一个模块一个模块,一个组件一个组件的来熟悉,掌握.实现一个比较大 ...
- 头文件 <sys/un.h>
struct sockaddr_un server_sockaddr ; struct sockaddr_un cli_sockaddr ;
- js 连等操作,,
奥术大师 var hu = { a : , c : , name : }; (function (){ var ccc = bbb = aaa = hu; })() console.log(bbb)* ...
- vue 页面回退mounted函数不执行的问题及解决方法
前言 最近做项目碰到一个很头大的问题--从a页面跳到b页面进行编辑,编辑完再返回a页面,却没走a页面的钩子函数mounted,数据没有更新 经过一番面向百度研究,终于找到了问题所在.接下来就记录一下这 ...
- jsp EL运算符
算术运算符 算术运算符 说明 示例 结果 + 加 ${1 + 1} 2 - 减 ${1 - 1} 0 * 乘 ${1 * 2} 2 /或div 除 ${3 / 2} 1.5 %或mod 取余 ${3 ...
- hbase-2.0.4集群部署
hbase-2.0.4集群部署 1. 集群节点规划: rzx1 HMaster,HRegionServer rzx2 HRegionServer rzx3 HRegionServer 前提:搭建好ha ...
- js 实时计算文本框字数限制
$.fn.myTarea = function(){ return this.each(function(){ $(this).bind('input propertychange', functio ...
- 【版本】Spring Cloud 版本
Spring Cloud 版本 Spring Cloud没有数字版本号,而是对应一个开发代号 Cloud代号 Boot版本(train) Boot版本(tested) lifecycle Angle ...
- 管理员技术(三): 配置静态网络地址、 使用yum软件源 、 升级Linux内核、查找并处理文件、查找并提取文件内容
一. 配置静态网络地址 目标: 本例要求为虚拟机 server 配置以下静态地址参数: 1> 主机名:server0.example.com 2> IP地址:172.25.0.11 ...