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数据分析 (四) 数组和矢量计算的更多相关文章

  1. python numpy基础 数组和矢量计算

    在python 中有时候我们用数组操作数据可以极大的提升数据的处理效率, 类似于R的向量化操作,是的数据的操作趋于简单化,在python 中是使用numpy模块可以进行数组和矢量计算. 下面来看下简单 ...

  2. [读书笔记] Python数据分析 (三) IPython

    1. 什么是IPython IPyhton 本身没有提供任何的计算或者数据分析功能,在交互式计算和软件开发者两个方面最大化地提高生产力,execute-explore instead of edit- ...

  3. [读书笔记] Python数据分析 (五) pandas入门

    pandas: 基于Numpy构建的数据分析库 pandas数据结构:Series, DataFrame Series: 带有数据标签的类一维数组对象(也可看成字典) values, index 缺失 ...

  4. [读书笔记] Python数据分析 (一) 准备工作

    1. python中数据结构:矩阵,数组,数据框,通过关键列相互联系的多个表(SQL主键,外键),时间序列 2. python 解释型语言,程序员时间和CPU时间衡量,高频交易系统 3. 全局解释器锁 ...

  5. [读书笔记] Python数据分析 (二) 引言

      1. 数据分析的任务:数据读写,数据准备(清洗,修整,规范化,重塑,切片切块,变形),转换,建模计算,呈现(模型/数据) 2. 数据集: bit.ly的1.usa.gov数据:URL缩短服务bit ...

  6. [读书笔记] Python 数据分析 (十二)高级NumPy

    da array: 一个快速而灵活的同构多维大数据集容器,可以利用这种数组对整块的数据进行一些数学运算 数据指针,系统内存的一部分 数据类型 data type/dtype 指示数据大小的元组 str ...

  7. [读书笔记] Python 数据分析 (八)画图和数据可视化

    ipython3 --pyplot pyplot: matplotlib 画图的交互使用环境

  8. [读书笔记] Python 数据分析 (十一)经济和金融数据应用

    resample: 重采样函数,可以按照时间来提高或者降低采样频率,fill_method可以使用不同的填充方式. pandas.data_range 的freq参数枚举: Alias Descrip ...

  9. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

随机推荐

  1. UVA 12633 Super Rooks on Chessboard (生成函数+FFT)

    题面传送门 题目大意:给你一张网格,上面有很多骑士,每个骑士能横着竖着斜着攻击一条直线上的格子,求没被攻击的格子的数量总和 好神奇的卷积 假设骑士不能斜着攻击 那么答案就是没被攻击的 行数*列数 接下 ...

  2. 终极对决!Dubbo 和 Spring Cloud 微服务架构到底孰优孰劣

    标签: 微服务dubbospring架构 前言 微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然 ...

  3. Problem 8

    Problem 8 # Problem_8.py """ The four adjacent digits in the 1000-digit number that h ...

  4. hdu 2491 贪心

    #include<stdio.h> #include<stdlib.h> #define N 110000 struct node { int u,v,len,time; }m ...

  5. IntelliJ IDEA 对于generated source的处理

    IntelliJ IDEA 对于generated source的处理 学习了:https://stackoverflow.com/questions/5170620/unable-to-use-in ...

  6. plsql解决64位解决办法

    plsql解决64位解决办法 设置PLSQL Developer访问本机64位Oracle 由于在本机Windows Server 2008 R2 X64上安装了64位的Oracle 11.2.0.1 ...

  7. Android Touch事件分发过程

    虽然网络上已经有非常多关于这个话题的优秀文章了,但还是写了这篇文章,主要还是为了加强自己的记忆吧,自己过一遍总比看别人的分析要深刻得多.那就走起吧. 简单演示样例 先看一个演示样例 : 布局文件 : ...

  8. Visual C++ 经常使用快捷键

    大写和小写 Ctrl+Shift+U: 所有变为大写 Ctrl+U: 所有变为小写 凝视 Ctrl+K+Crtr+C: 凝视选定内容  Ctrl+K+Crtr+U: 取消选定凝视内容 折叠 折叠代码: ...

  9. 去哪网实习总结:如何配置数据库连接(JavaWeb)

    本来是以做数据挖掘的目的进去哪网的,结构却成了系统开发.. . 只是还是比較认真的做了三个月,老师非常认同我的工作态度和成果. .. 实习立即就要结束了.总结一下几点之前没有注意过的变成习惯和问题,分 ...

  10. SSM框架——具体整合教程(Spring+SpringMVC+MyBatis)

    使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了.项目在技术上已经没有什么难点了,基于现有的技术就能够实现想要的功能.当然肯定有非常多能够改进的地方.之前没有记录SSM整 ...