NumPy 是高性能科学计算和数据分析的基础包. 它是 pandas 等其他各种工具的基础.

主要功能:

  • ndarray 一个多维数组结构, 高效且节省空间
  • 无需循环对整组数据进行快速运算的数学函数
  • 线性代数, 随机数生成和傅里叶变换功能

ndarry 多维数组

  • 创建ndarry: np.array(array_like)
  • 数组与列表的区别:
    • 数组对象类元素类型必须相同
    • 数组大小不可修改

ndarry 常用属性

  • T: 数组的转置
  • size: 数组元素个数
  • ndim: 数组的维数
  • shape: 数组的维度大小(元组形式)
  • dtype: 数组元素的数据类型

ndarry 创建方法

  • array() 将列表转为数组, 可选择显式指定 dtype
  • arange() range 的 numpy 版支持浮点数
  • linspace() 类似 arange(), 第三个参数为数组长度
  • zero() 根据指定形状和 dtype 创建全0数组
  • ones() 根据指定形状和 dtype 创建全1数组
  • empty() 根据指定形状和 dtype 创建空数组(内存随机值)
  • eye() 根据指定边长和 dtype 创建单位矩阵

ndarray 索引

  • 一维数组索引 a[5]
  • 多维数组索引 a[2][3]
  • 新式写法 a[2, 3] (推荐)

  • 对于一个数组, 选出其第1, 3, 4, 6, 7个元素, 组成新的二维数组: a[[1,3,4,6,7]]
  • 布尔型索引, 选出所有大于5的偶数: a[(a>5) & (a%2=0)]
  • 布尔型索引, 选出所有大于5的数和偶数: a[(a>5) | (a%2=0)]
  • 对于一个二维数组, 选出其第一列和第三列, 组成新的二维数组: a[:, [1, 3]]

ndarry 切片

  • 一维数组的切片: 与列表类似
  • 多维数组的切片: a[1:2, 3:4] a[:, 3:5] a[:, 1] (前行后列)
  • 与列表切片的不同: 数组切片时并不会自动复制(而是创建一个视图), 在切片数组上的修改会影响原数组
  • copy() 方法可以创建数组的深拷贝

NumPy 通用函数

浮点数特殊值

  • nan(Not 啊Number) 不等于任何浮点数(nan != nan)
  • inf(infinty) 比任何浮点数都大
  • NumPy中创建特殊值 np.nan np.inf
  • 在数据分析中, nan常被用做数据缺失值

一元函数

abs sqrt exp log ceil(向上取整) floor(向下取整) rint trunc modf isnan isinf cos sin tan

二元函数

add substract multiply divide power mod maximum mininum

数学和统计方法

  • sum 求和
  • mean 求平均数
  • std 求标准差
  • var 求方差
  • min 求最小值
  • max 求方差
  • argmin 求最小值索引
  • argmax 求最大值索引

随机数生成

  • rand 给定形状产生随机数组(0到1之间的数)
  • randin 给定形状产生随机整数
  • choice 给定形状产随机选择
  • shuffle 与random.shuffle相同
  • uniform 给定形状产生随机数组

NumPy 基础用法的更多相关文章

  1. numpy基础用法学习

    numpy get started 导入numpy库,并查看numpy版本 import numpy as np np.__version__ '1.14.0' 一.创建ndarray 1. 使用np ...

  2. Python Numpy shape 基础用法(转自他人的博客,如涉及到侵权,请联系我)

    Python Numpy shape 基础用法 shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度.它的输入 ...

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

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

  4. 小白眼中的AI之~Numpy基础

      周末码一文,明天见矩阵- 其实Numpy之类的单讲特别没意思,但不稍微说下后面说实际应用又不行,所以大家就练练手吧 代码裤子: https://github.com/lotapp/BaseCode ...

  5. python数据分析---第04章 NumPy基础:数组和矢量计算

    NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...

  6. [转]python与numpy基础

    来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb ...

  7. 数据分析-numpy的用法

    一.jupyter notebook 两种安装和启动的方式: 第一种方式: 命令行安装:pip install jupyter 启动:cmd 中输入 jupyter notebook 缺点:必须手动去 ...

  8. 利用python进行数据分析--numpy基础

    随书练习,第四章  NumPy基础:数组和矢量运算 # coding: utf-8 # In[1]: # 加注释的三个方法1.用一对"""括起来要注释的代码块. # 2. ...

  9. python数据分析 Numpy基础 数组和矢量计算

    NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...

随机推荐

  1. 通过Python计算一个文件夹大小

    在进行计算一个文件夹内容大小的时候,我们要考虑文件夹内都有什么内容,可能都是一个一个的单文件,也有可能都是子文件夹,或者二者都有,既然要计算整个文件夹的大小,我们当然要计算每一个文件的大小以及每一个子 ...

  2. 6th-Python基础——集合、函数

    1.集合 主要作用: (1)去重 (2)关系测试,交集.差集difference().并集union().反向差集symmetric_difference().子集issubset().父集issup ...

  3. Centos7初始化脚本

    今天分享一个自己写的一个初始化的小脚本. 编写初始化系统要考虑到系统的版本问题,现在用的比较多的就是centos6和centos7,所以首先要判断一下系统的版本. cat /etc/redhat-re ...

  4. PHP深入浅出之命名空间(Namespace)的使用详解

    对于命名空间,官方文档已经说得很详细[查看],我在这里做了一下实践和总结. 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种情况下只 ...

  5. JxBrowser之四:对Http Response Code的处理

    1.由于各种原因,客户端或者服务端都可能出现err,比如服务端无响应的504 Gateway Time-out 4×× 客户错误 5×× 服务器错误 2.使用下面代码,当发生错误时,重新加载对应的ur ...

  6. 由装饰者模式来深入理解Java I/O整体框架

    前言 Java里面的I/O这一部分看过很多遍,每次看完之后特别混乱,又是输入流,又是输出流,又是字符流,又是字节流,还有什么过滤流,缓冲流.每次看得我如入云里雾里,直到后面看了设计模式这一块,才算真正 ...

  7. linux存储管理之磁盘阵列

    磁盘阵列 RAID ====================================================================================RAID:廉 ...

  8. 【百度地图API】如何获取行政区域的边界?(转载)

    转自:http://www.cnblogs.com/milkmap/archive/2012/04/11/2442430.html 摘要:以前教过大家如何自行获取行政区域,或者自定义获取一个区域的边界 ...

  9. 『Python CoolBook:heapq』数据结构和算法_heapq堆队列算法&容器排序

    一.heapq堆队列算法模块 本模块实现了堆队列算法,也叫作优先级队列算法.堆队列是一棵二叉树,并且拥有这样特点,它的父节点的值小于等于任何它的子节点的值. 本模块实际上实现了一系列操作容器的方法,使 ...

  10. 有关两个jar包中包含完全相同的包名和类名的加载问题

    首先从表现层介绍,后续后深入原理. 1,先简单介绍maven如何生成jar文件方便测试 <plugin> <artifactId>maven-assembly-plugin&l ...