读书笔记五--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):残 ...
随机推荐
- JS鼠标提示框效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- teb教程7
融合自定义的障碍物 简介:本部分讲解怎样考虑其他节点发布的多边形的障碍物. 1.在一些应用当中,可能不想依赖于代价地图或者想添加其他的除了点状的障碍物.你可以发送你自己的障碍物列表到teb_local ...
- 2.java中c#中statc 静态调用不同之处、c#的静态构造函数和java中的构造代码块、静态代码块
1.java和c#静态成员调用的不同之处 static 表示静态的,也就是共享资源,它是在类加载的时候就创建了 java中 可以通过实例来调用,也可以通过类名.成员名来调用,但是一般最好使用类名. ...
- phpStudy的安装和配置
一,下载工具 官网:http://www.phpstudy.net/,选择自己要安装的版本 二.多个站点和域名配置 1.打开phpStudy=>点击“其它选项菜单”=>点击“站点域名管理” ...
- Angular.js分页代码
$scope.reloadList=function(){ $scope.findPage( $scope.pagina ...
- C#中ArrayList 、Array与、string、string[]数组的相关转换
一.ArrayList 与 string.string[]数组的转换 1.ArrayList 转换为 string[] : ArrayList list = new ArrayList(); list ...
- SQL 在表中插入
SQL INSERT INTO 语句(在表中插入) INSERT INTO 语句用于向表中插入新记录. SQL INSERT INTO 语句 INSERT INTO 语句用于向表中插入新记录. SQL ...
- 一文带你了解 Flink Forward 柏林站全部重点内容
前言 2019.10.7~9号,随着70周年国庆活动的顺利闭幕,Flink Forward 也照例在他们的发源地柏林举办了第五届大会.虽然还没有拿到具体的数据,不过从培训门票已经在会前销售一空的这样的 ...
- 线段树区间合并——cf1217E
/* 定义:多重集s的元素和是sum,对于sum的第i位为x,如果s里找不到第i位也是x的元素,那么称这个多重集为bad, 现在给定一个 序列a 两种操作 1 i x:将序列第i个元素改为x 2 l ...
- elementUi-复选框,使用v-for循环出来的复选框,默认多个值为勾选状态
1. 使用 v-model="BottomSelectFor[index].tick" 绑定要默认勾选的状态 2.在数组中定义 tick:true,没有的字段默认为false 3. ...