一、numpy概述

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

NumPy的主要功能:

  • ndarray,一个多维数组结构,高效且节省空间
  • 无需循环对整组数据进行快速运算的数学函数
  • *读写磁盘数据的工具以及用于操作内存映射文件的工具
  • *线性代数、随机数生成和傅里叶变换功能
  • *用于集成C、C++等代码的工具

python中操作方式:

  • 安装方法:pip install numpy
  • 引用方式:import numpy as np

也可以通过安装anaconda软件操作,里面包含(numpy,pandas以及Matplotlib多个库),本片文章是在anaconda3中运行!!!

二、NumPy:ndarray-多维数组对象

创建ndarray:np.array()

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

  • 数组对象内的元素类型必须相同
  • 数组大小不可修改

常用属性:

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

代码示例:

三、NumPy:ndarray-数据类型

ndarray数据类型:dtype:
●布尔型:bool_
●整型:int_ int8 int16 int32 int64
●无符号整型:uint8 uint16 uint32 uint64
●浮点型:float_ float16 float32 float64
●复数型:complex_ complex64 complex128

四、NumPy:ndarray-创建

创建ndarray:
●array() 将列表转换为数组,可选择显式指定dtype
●arange() range的numpy版,支持浮点数
●linspace() 类似arange(),第三个参数为数组长度
●zeros() 根据指定形状和dtype创建全0数组
●ones() 根据指定形状和dtype创建全1数组
●empty() 根据指定形状和dtype创建空数组(随机值)

五、NumPy:索引和切片

  -代码示例:
  ●a= np.array([0,1,2,3,4,5,6,7,8,9])
  ●a2 = np.array([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]]) -数组和标量之间的运算
●a+1 a*3 1//a a**0.5
-同样大小数组之间的运算
●a+b a/b a**b
-数组的索引
●一维数组:a[5] --> #5
●多维数组:
●列表式写法:a2[2][3] --> #13
●新式写法:a2[2,3](推荐) --> #13
-数组的切片
●一维数组:a[5:8]   --> # array([5,6,7])  
a[:3] = 1 --> # array([1,1,1,3,4,5,6,7,8,9])
●二维数组:a2[1:2, :4] --> # array([[5, 6, 7, 8]])  
a2[:,:1] --> # array([[0],[5],[10]])
       a2[:,1] --> # array([1,6,11])
-与列表不同,数组切片时并不会自动复制,在切片数组上的修改会影响原数组。
●【解决方法: copy()】

六、NumPy:布尔型索引

问题:给一个数组,选出数组中所有大于5的数。
答案:a[a>5]
原理:
a>5会对a中的每一个元素进行判断,返回一个布尔数组
布尔型索引:将同样大小的布尔数组传进索引,会返回一个由所有True对应位置的元素的数组 问题2:给一个数组,选出数组中所有大于5的偶数。
答案:
a[(a>5) & (a%2==0)]
原理:此处不能用and,and为关键字;&为运算符,表示与的意思 问题3:给一个数组,选出数组中所有大于5的数或偶数。
答案:
a[(a>5) | (a%2==0)]
原理:此处 | 表示或的意思 备注:~表示非的意思

 七NumPy:花式索引*

问题1:对于一个数组,选出其第1,3,4,6,7个元素,组成新的二维数组。
●答案:a[[1,3,4,6,7]] 问题2:对一个二维数组,选出其第一列和第三列,组成新的二维数组。
●答案:a[:,[1,3]] 问题3: 已知 a2 = np.array([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]]),想要获取新的数组array([[1,3],[11,13]])该怎么切?
●答案: a2[[0,2],:][:,[1,3]]
●备注:切勿两边同时花式索引,a2[[0,2],[1,3]],得出 array([ 1, 13])

八、NumPy:通用函数

通用函数:能同时对数组中所有元素进行运算的函数

九、NumPy:数学和统计方法

常用函数:
●sum 求和
●mean 求平均数
●std 求标准差
●var 求方差
●min 求最小值
●max 求最大值
●argmin 求最小值索引
●argmax 求最大值索引

十、NumPy:随机数生成

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

数据分析--numpy的基本使用的更多相关文章

  1. 利用Python进行数据分析——Numpy基础:数组和矢量计算

    利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...

  2. Python数据分析-Numpy数值计算

    Numpy介绍: NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础. NumPy的主要功能: 1)ndarray,一个多维数组结构,高效且节省空间 2)无需循环对整组 ...

  3. Python数据分析numpy库

    1.简介 Numpy库是进行数据分析的基础库,panda库就是基于Numpy库的,在计算多维数组与大型数组方面使用最广,还提供多个函数操作起来效率也高 2.Numpy库的安装 linux(Ubuntu ...

  4. 数据分析——numpy

    DIKW DATA-->INFOMATION-->KNOWLEDGE-->WISDOM 数据-->信息-->知识-->智慧 爬虫-->数据库-->数据分 ...

  5. Python数据分析Numpy库方法简介(二)

    数据分析图片保存:vg 1.保存图片:plt.savefig(path) 2.图片格式:jpg,png,svg(建议使用,不失真) 3.数据存储格式: excle,csv csv介绍 csv就是用逗号 ...

  6. python数据分析Numpy(二)

    Numpy (Numerical Python) 高性能科学计算和数据分析的基础包: ndarray,多维数组(矩阵),具有矢量运算能力,快速.节省空间: 矩阵运算,无需循环,可以完成类似Matlab ...

  7. python 数据分析----numpy

    NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础. NumPy的主要功能: ndarray,一个多维数组结构,高效且节省空间 无需循环对整组数据进行快速运算的数学函数 ...

  8. 数据分析 - Numpy

    简介 Numpy是高性能科学计算和数据分析的基础包.它也是pandas等其他数据分析的工具的基础,基本所有数据分析的包都用过它.NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库 ...

  9. 数据分析-numpy的用法

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

随机推荐

  1. set和push方法压入栈顶的值获取方法

    向值栈里面放数据(储存的位置在root域里面) 向值栈放数据有多种方式,往往我们只用其中一种 1.set方法压栈 1)在Action中获取值栈对象,使用set()方法向值栈存放数据 ActionCon ...

  2. 牛客-小a的旅行计划 + 数学推导

    小a的旅行计划 题意: 小a终于放假了,它想在假期中去一些地方游玩,现在有N个景点,编号为,同时小b也想出去游玩.由于一些特殊♂原因,他们的旅行计划必须满足一些条件 首先,他们可以从这N个景点中任意选 ...

  3. POJ3321 - Apple Tree DFS序 + 线段树或树状数组

    Apple Tree:http://poj.org/problem?id=3321 题意: 告诉你一棵树,每棵树开始每个点上都有一个苹果,有两种操作,一种是计算以x为根的树上有几个苹果,一种是转换x这 ...

  4. 牛客暑假多校第六场 I Team Rocket

    题意: 现在有n条火车, 每条火车都有一个运行 [ Li, Ri ], 现在有m支火箭队, 每次火箭队都会破坏这整条铁路上的一个点, 如果一条火车的运行区间[Li, Ri] 被破坏了, 那么这条火车会 ...

  5. lightoj 1037 - Agent 47(状压dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1037 #include <iostream> #include & ...

  6. codeforce 505 D. Mr. Kitayuta's Technology(tarjan+并查集)

    题目链接:http://codeforces.com/contest/505/problem/D 题解:先用tarjan缩点然后再用并查集注意下面这种情况 ‘ 这种情况只需要构成一个大环就行了,也就是 ...

  7. velocity中文乱码

    当使用velocity出现中文乱码. 首先:我们设置 eclipse的编码方式 : 右键工程师属性->properties->查看编码格式是否伟URF-8 然后:spring-xml文件中 ...

  8. C++ lambda的演化

    翻译自https://www.bfilipek.com/2019/02/lambdas-story-part1.html与https://www.bfilipek.com/2019/02/lambda ...

  9. Go语言基础之基本数据类型

    Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. 基本数据类型 整型 整型 ...

  10. lambda表达式与匿名内部类与双冒号(::)

    lambda表达式在只有一条代码时还可以引用其他方法或构造器并自动调用,可以省略参数传递,代码更加简洁,引用方法的语法需要使用::符号.lambda表达式提供了四种引用方法和构造器的方式: 引用对象的 ...