[读书笔记] Python数据分析 (四) 数组和矢量计算
Numpy:高性能计算和数学分析的基础包
- ndarray, 一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组
- 用于对数组数据进行快速运算的标准数学函数
- 用于读写磁盘数据的工具和用于操作内存映射文件的工具
- 线性代数,随机数生成,傅里叶变换
- 用于集成C,C++,Fortran等语言编写的代码工具(很容易将数据传给低级语言编写的外部库,外部库也能以Numpy数组形式将数据返回给python,使得python成为包装c/c++/Fortran历史代码库选择)
ndarray: N维数组对象,快速而灵活的大数据容器集,通用同构数据容器。
data.shape: 一个各维度大小的元组
data.dtype: 说明数组数据类型的对象
如何创建:
array()函数
zeros(): 全零
ones(): 全一
empty(): 垃圾值
arrange(): python内置函数range的数组版
所有数据类型默认float64
astype()类型转换:
数组和标量之间的运算:
相同大小之间的组和数组,数组与标量之间的运算都会将运算用到元素级
不同大小数组之间的运算叫做广播(broadcasting)
基本索引和切片:
和列表最重要的区别在于, 数组的切片是原始数组的视图(数据不会复制,视图上任何修改都会反映到源数组上)
原因:Numpy设计的目的是处理大数据,所以假如Numpy坚持将数据复制来复制去会产生性能和内存的问题
显示复制:copy()方法
基本的索引和切片:
切片的时候区间同样是左开右闭:
布尔值索引:布尔数组的长度必须和被索引的轴长度一致
通过布尔索引选取数组中的数据,将总是创建数据的副本,即使返回一模一样的数组也是这样
python 中的 and 和 or 在布尔数组中无效
花式索引:利用整数数组进行索引
和切片不一样总是将数据复制到新的数组当中
数组转置和轴对换
transpose()方法和T属性
高维数组转置: swapaxes transpose方法
快速的元素级数组函数
一元函数
二元函数
利用数组进行数据处理
矢量化:用数组表达式代替循环,矢量化数组运算比等价的纯python方式快1-2个数量级(甚至更多)
将条件逻辑转换为数组运算
np.where()
数学和统计方法
用于布尔型数组的方法
any():测试数组中是否存在一个或者多个True
all(): 检查数组中所有值是否都是True
排序:
顶级方法np.sort()返回数组已排序副本
属性sort()修改数组本身
唯一化及其他的集合逻辑
np.unique()唯一化
np.in1d()测试数组中值在另一个数组中的成员资格
集合函数:
数组文件输入输出
np.save()/np.savez()
np.load()
线性代数
dot():既是数组方法也是numpy命名空间中的一个函数
numpy.linalg库中有一组标准矩阵分解运算以及求诸如逆和行列式之类的东西
随机数生成
[读书笔记] Python数据分析 (四) 数组和矢量计算的更多相关文章
- python numpy基础 数组和矢量计算
在python 中有时候我们用数组操作数据可以极大的提升数据的处理效率, 类似于R的向量化操作,是的数据的操作趋于简单化,在python 中是使用numpy模块可以进行数组和矢量计算. 下面来看下简单 ...
- [读书笔记] Python数据分析 (三) IPython
1. 什么是IPython IPyhton 本身没有提供任何的计算或者数据分析功能,在交互式计算和软件开发者两个方面最大化地提高生产力,execute-explore instead of edit- ...
- [读书笔记] Python数据分析 (五) pandas入门
pandas: 基于Numpy构建的数据分析库 pandas数据结构:Series, DataFrame Series: 带有数据标签的类一维数组对象(也可看成字典) values, index 缺失 ...
- [读书笔记] Python数据分析 (一) 准备工作
1. python中数据结构:矩阵,数组,数据框,通过关键列相互联系的多个表(SQL主键,外键),时间序列 2. python 解释型语言,程序员时间和CPU时间衡量,高频交易系统 3. 全局解释器锁 ...
- [读书笔记] Python数据分析 (二) 引言
1. 数据分析的任务:数据读写,数据准备(清洗,修整,规范化,重塑,切片切块,变形),转换,建模计算,呈现(模型/数据) 2. 数据集: bit.ly的1.usa.gov数据:URL缩短服务bit ...
- [读书笔记] Python 数据分析 (十二)高级NumPy
da array: 一个快速而灵活的同构多维大数据集容器,可以利用这种数组对整块的数据进行一些数学运算 数据指针,系统内存的一部分 数据类型 data type/dtype 指示数据大小的元组 str ...
- [读书笔记] Python 数据分析 (八)画图和数据可视化
ipython3 --pyplot pyplot: matplotlib 画图的交互使用环境
- [读书笔记] Python 数据分析 (十一)经济和金融数据应用
resample: 重采样函数,可以按照时间来提高或者降低采样频率,fill_method可以使用不同的填充方式. pandas.data_range 的freq参数枚举: Alias Descrip ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
随机推荐
- vue router 配置默认页/404页面
*号通配404默认页面
- apache https部署
1.生成证书,直接在阿里云或腾讯云中生成此处不再介绍 2.在httpd.conf中取消#LoadModule ssl_module modules/mod_ssl.so的注释 3.开启httpd-ss ...
- 0113针对大数据量SUM的优化-思路
转自博客:http://bbs.csdn.net/topics/390426801?page=1 优化思路:无论如何你的结果都是要扫描全有表记录,而在456010记录中,的UserName的分布导致这 ...
- vue v-for 渲染完成回调
vue开发中等待vue渲染完成后加载数据的回调方法 Vue.nextTick(function () { alert("加载完成!"); }) 特别注意,如果使用ajax异步渲染的 ...
- Python模块路径查找
本文主要介绍如何查找某个Python模块的绝对路径,下面以opencv模块的查找为例.有两种方法 第一种方法 打开一个终端,输入 python -v import cv2 最后一行显示如下 第二种方法 ...
- uva 10061(数学)
题解:题目要在b进制下输出的是一个数字阶乘后有多少个零,然后输出一共同拥有多少位.首先计算位数,log(n)/log(b) + 1就是n在b进制下有多少位,而log有个公式就是log(M×N) = l ...
- Android Cocos2dx引擎 prv.ccz/plist/so等优化缓存文件,手把手ida教你逆向project反编译apk库等文件
前段时间在 Android play 上看到一个非常牛逼的 3D 动态天气预报,效果真的非常炫.二话不说动手 dex2jar.bat/apktool 发现这并没 有什么卵用,在核心的地方看见 nati ...
- emacs使用本地emacs server模式打开远程文件
使用emacs的用户都知道,一般要打开远程机器上的文件要使用TrampMode模式,调用方式例如以下: C-x C-f /remotehost:filename RET (or /method:use ...
- hdu 2151
就是一个dp,数组内存的步数, 数组没清空,wa了一次 #include<cstdio> #include<algorithm> #include<cstring> ...
- 准确率99%!基于深度学习的二进制恶意样本检测——瀚思APT 沙箱恶意文件检测使用的是CNN,LSTM TODO
所以我们的流程如图所示.将正负样本按 1:1 的比例转换为图像.将 ImageNet 中训练好的图像分类模型作为迁移学习的输入.在 GPU 集群中进行训练.我们同时训练了标准模型和压缩模型,对应不同的 ...