NumPy:数组计算

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

NumPy的主要功能:

  ndarray,一个多维数据结构,高校且节省空间

  无需循环即可对整组数据进行快速运算的数学函数

  读写磁盘数据的工具以及用于操作内存映射文件的工具

  线性代数、随机数生成和傅里叶变化功能

  用于集成C、C++等代码的工具

安装方法:pip install numpy(如果显示命令不存在可以尝试python -m install numpy)

引用方式通常喜欢给numpy模块别名:import numpy as np

NumPy简单使用

例1:已知若干家跨国公司的市值(美元),将其换算为人民币

例2:已知购物车中每件商品的价格与商品件数,求总金额

创建ndarray:np.array()

ndarray是多维数组结构,与列表的区别是:

  数组对象内的元素类型必须相同

  数组大小不可修改

常用属性

T    数组的转置(对二维及以上数组而言)

dtype   数组元素的数据类型

size     数组元素的个数

ndim      数组的维数

shape    数组的维度大小(以元祖的形式)

ndarray创建

arange()    比我们的python3里面的range更加强大,支持浮点数范围

linspance()    类似于arange(),第三个参数为数组长度

zeros()      根据指定形状和dtype创建全0数组

ones()       根据指定形状和dtype创建全1数组

empty()     根据指定形状和dtype创建空数组(随机值)

eye()      根据指定边长和dtype创建单位矩阵

NumPy索引切片

数组和标量(数字)之间的运算

  a+1 a*3 1//a a**0.5

同样大小数组之间的运算

  a+b a/b a**b

数组的索引

一维数组:a[5]

多维数组:

  列表式写法:a[2][3]

  新式写法:a[2,3] (推荐)  逗号隔开,前面作用于行后面作用于列

数组的切片 

一维数组:a[5:8]     a[4:]     a[2:10] = 1

多维数组:a[1:2, 3:4]   a[:,3:5]       a[:,1]

与列表不同,数组切片时并不会自动复制,在切片数组上的修改会影响原数组(因为不会复制一份出去而是沿用原来的内存空间中的值)。 【解决方法:copy()】

NumPy布尔型索引

问题:给一个数组,选出数组中所有大于5的数。

答案:a[a>5]

原理: a>5会对a中的每一个元素进行判断,返回一个布尔数组 布尔型索引:将同样大小的布尔数组传进索引,会返回一个由所有True对应位置的元素的数组

问题2:给一个数组,选出数组中所有大于5的偶数。

问题3:给一个数组,选出数组中所有大于5的数和偶数。

答案:

    a[(a>5) & (a%2==0)]

    a[(a>5) | (a%2==0)]

NumPy花式索引

问题1:对于一个数组,选出其第1,3,4,6,7个元素,组成新的二维数组。

  答案:a[[1,3,4,6,7]]

问题2:对一个二维数组,选出其第一列和第三列,组成新的二维数组。

  答案:a[:,[1,3]]

必会知识点

浮点数特殊值

浮点数:float

浮点数有两个特殊值:

  nan(Not a Number):不等于任何浮点数(nan != nan)

  inf(infinity):比任何浮点数都大

NumPy中创建特殊值:np.nan np.inf

在数据分析中,nan常被用作表示数据缺失值

sum 求和

cumsum 求前缀和(截至当前元素及其前面所有的元素和)

mean 求平均数

std 求标准差

var 求方差

min 求最小值

max 求最大值

argmin 求最小值索引

argmax 求最大值索引

总结

数组中的数据类型必须一致,并且数组大小不可再被更改‘

对于数组求相应值由四种不同的方式:

  正常的索引切片取值

  行列分开的切片取值

  布尔型(生成一个与原数组各元素一一对应的布尔值数组,原数组与该布尔值列表一一对应,值为True的放行~~~)

  

Numpy基本操作的更多相关文章

  1. NumPy基本操作快速熟悉

    NumPy 是 Python 数值计算非常重要的一个包.很多科学计算包都是以 NumPy 的数组对象为基础开发的. 本文用代码快速过了一遍 NumPy 的基本操作,对 NumPy 整体有一个把握.希望 ...

  2. 矩阵库Numpy基本操作

    NumPy是一个关于矩阵运算的库,熟悉Matlab的都应该清楚,这个库就是让python能够进行矩阵话的操作,而不用去写循环操作. 下面对numpy中的操作进行总结. numpy包含两种基本的数据类型 ...

  3. numpy数组的操作

    numpy - 介绍.基本数据类型.多维数组ndarray及其内建函数 http://blog.csdn.net/pipisorry/article/details/22107553 http://w ...

  4. numpy的使用方法

    一.numpy快速入门 1.什么是numpy: numpy是python的一个矩阵类型,提供了大量矩阵处理的函数,非正式来说,就是一个使运算更容易,执行更迅速的库,因为它的内部运算是通过c语言而不是p ...

  5. Python的工具包[0] -> numpy科学计算 -> numpy 库及使用总结

    NumPy 目录 关于 numpy numpy 库 numpy 基本操作 numpy 复制操作 numpy 计算 numpy 常用函数 1 关于numpy / About numpy NumPy系统是 ...

  6. Numpy和Pandas的使用入门

    Numpy Numpy基本数据结构 np.array()函数接受一个多维list,返回对应纬度的矩阵 vector = np.array([1, 2, 3, 4]) matrix = np.array ...

  7. Pandas快速上手(一):基本操作

    本文包含一些 Pandas 的基本操作,旨在快速上手 Pandas 的基本操作. 读者最好有 NumPy 的基础,如果你还不熟悉 NumPy,建议您阅读NumPy基本操作快速熟悉. Pandas 数据 ...

  8. Python之路-numpy模块

    这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...

  9. 第03章 科学计算库Numpy

    016.Numpy数据结构    关于矩阵运算的库 矩阵 017.Numpy基本操作 判断每一个元素的 018.Numpy矩阵属性 019.Numpy矩阵操作 020.Numpy常用函数 按列拼接就用 ...

随机推荐

  1. Mybatis环境配置学习

    Mybatis的使用环境配置步骤主要分为以下三步 1.导入jar包 2.创建mybatis的全局配置文件,并编写 3.创建mapper的配置文件 一.导入jar包 --- (踩坑:这一步中的导入mys ...

  2. ajax跨域请求,亲测有效

    跨域请求域有两种常用解决方案,jsonp和cors, 因为jsonp只能解决get请求问题,我这里用的是cors方法. js前端ajax请求: $.ajax({ url: "http://1 ...

  3. 【转】三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别

    关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个 ...

  4. Hibernate框架笔记03表操作多对多配置

    目录 1. 数据库表与表之间的关系 1.1 一对多关系 1.2 多对多关系 1.3 一对一关系[了解] 2. Hibernate的一对多关联映射 2.1 创建一个项目,引入相关jar包 2.2. 创建 ...

  5. SAP MM 事务代码MI31之思考

    SAP MM 事务代码MI31之思考 1 - MI01之痛 多年SAP项目实施实践中,笔者之前对于SAP系统里盘点凭证创建(MI01)事务代码里的输入界面很是不爽: 第一,MI01输入了一行数据以后, ...

  6. 使用python操作XML增删改查

    使用python操作XML增删改查 什么是XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输 ...

  7. 虚拟机下centos7.x简易命令大全与试玩体验

    OS: liunxversion: centos7.xdate: 2019-01-18 1. cd  /                               : 进入服务器根目录2. cd . ...

  8. MySQL 常用指令小结

    l  创建数据库:CREATE DATABASE table_name; l  删除数据库:DROP DATABASE table_name; l  展示数据库:SHOW DATABASE; l  选 ...

  9. mybatis中:selectKey返回最近插入记录的id

    <insert id="insert" parameterType="com.lls.model.Employee"> <!-- select ...

  10. Python使用Plotly绘图工具,绘制气泡图

    今天来讲讲如何使用Python 绘图工具,Plotly来绘制气泡图. 气泡图的实现方法类似散点图的实现.修改散点图中点的大小,就变成气泡图. 实现代码如下: import plotly as py i ...