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. Centos 7.0 zabbix 部署

    1.LAMP 环境搭建 初次安装可以先关闭selinux 和 firewall [root@localhost ~]# setenforce [root@localhost ~]# systemctl ...

  2. c#连接oracle数据库底层方法

    using Oracle.ManagedDataAccess.Client;using System;using System.Collections;using System.Collections ...

  3. java Calendar的学习分享

    前言: 在我们的日常生活中,常常能看见时间.如:在我们的手机里,在一些网站上也能随处看到时间.那我们在项目的开发中,也常常涉及到时间的处理,对于我们经常会遇到和处理的问题.Java中专门为我们处理时间 ...

  4. ARM与FPGA通过spi通信设计1.spi基础知识

    SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息.SPI总线可直接与各个厂家生产 ...

  5. CSS Grid 布局完全指南(图解 Grid 详细教程)

    CSS Grid 布局是 CSS 中最强大的布局系统.与 flexbox 的一维布局系统不同,CSS Grid 布局是一个二维布局系统,也就意味着它可以同时处理列和行.通过将 CSS 规则应用于 父元 ...

  6. Axure rp8团队原型图开发

    说道原型图大家都不陌生,Axure rp作为这类工具可以说在网页布局的设计给开发人员提供了很大便利,目前我只熟悉过这一种,不知道小伙伴们有没有其他好用的工具推荐给大家用一下吗.好了,废话不多说,今天给 ...

  7. 统计字符串中字符出现的次数(||和&&的区别)

    var str = "ProsperLee"; // || 返回第一个为真的表达式的值,若全为假则返回最后一个表达式的值 // && 返回第一个为假的表达式的值,若 ...

  8. 【代码笔记】Web-CSS-CSS background背景

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  9. arcgis api 3.x for js 入门开发系列十二地图打印GP服务(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  10. React Native基础&入门教程:以一个To Do List小例子,看props和state

    本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 在上篇中,我们介绍了什么是Flexbox布局,以及如何使用Flexb ...