数据分析三剑客 numpy,oandas,matplotlib
数据分析:
是不把隐藏在看似杂乱无章的数据域背后的信息提炼出来,总结出所研究对象内在规律
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
创建ndarray
使用np.array()创建
- 一维数据创建
import numpy as np np.array([1,2,3,4,5]) 结果:rray([1, 2, 3, 4, 5])
- 二维数组创建
np.array([[1,2,3],['a','b',1.1]]) #二维数据就是讲一个大列表嵌套两个小列表 结果:
array([['', '', ''],
['a', 'b', '1.1']], dtype='<U11')
注意:
- numpy默认ndarray的所有元素的类型是相同的
- 如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int
2. 使用np的routines函数创建
#np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) 等差数列 np.linspace(1,100,num=50) array([ 1. , 3.02040816, 5.04081633, 7.06122449,
9.08163265, 11.10204082, 13.12244898, 15.14285714,
17.16326531, 19.18367347, 21.20408163, 23.2244898 ,
25.24489796, 27.26530612, 29.28571429, 31.30612245,
33.32653061, 35.34693878, 37.36734694, 39.3877551 ,
41.40816327, 43.42857143, 45.44897959, 47.46938776,
49.48979592, 51.51020408, 53.53061224, 55.55102041,
57.57142857, 59.59183673, 61.6122449 , 63.63265306,
65.65306122, 67.67346939, 69.69387755, 71.71428571,
73.73469388, 75.75510204, 77.7755102 , 79.79591837,
81.81632653, 83.83673469, 85.85714286, 87.87755102,
89.89795918, 91.91836735, 93.93877551, 95.95918367,
97.97959184, 100. ])
间隔为2的等差数列
#np.arange([start, ]stop, [step, ]dtype=None)
np.arange(1,100,2) array([ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33,
35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67,
69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99])
生成随机数
#np.random.randint(low, high=None, size=None, dtype='l') np.random.seed(10)#这里random.seed 是固定随机数获取的值
arr = np.random.randint(0,100,size=(5,6))
生成3 * 3 的二维随机数
#np.random.random(size=None) #生成0到1的随机数,左闭右开 np.random.seed(3) np.random.random(size=(3,3)) array([[0.765334 , 0.68742254, 0.12771576],
[0.34878082, 0.46292111, 0.75355298],
[0.08188152, 0.53189213, 0.17514265]])
二、ndarray的属性
4个必记参数:
ndim:维度
shape:形状(各维度的长度)
size:总长度 dtype:元素类型

三、ndarray的基本操作
1. 索引一维与列表完全一致
多维时同理
arr
array([[ 9, 15, 64, 28, 89, 93], [29, 8, 73, 0, 40, 36], [16, 11, 54, 88, 62, 33], [72, 78, 49, 51, 54, 77], [69, 13, 25, 13, 92, 86]])
arr[[1,2]] #进行索引当是二维数组的时候,arr[0] 表示获取第一列, arr[[2,4]]表示获取3,5 行 结果:
array([[29, 8, 73, 0, 40, 36],
[16, 11, 54, 88, 62, 33]]) 可以根据索引修改数据 根据索引修改数据
2. 切片
一维与列表完全一致
多维时同理
arr
array([[ 9, 15, 64, 28, 89, 93],
[29, 8, 73, 0, 40, 36],
[16, 11, 54, 88, 62, 33],
[72, 78, 49, 51, 54, 77],
[69, 13, 25, 13, 92, 86]])
#获取二维数组前两行
arr[0:2] array([[ 9, 15, 64, 28, 89, 93],
[29, 8, 73, 0, 40, 36]]) #获取二维数组前两列
arr[:,0:2] array([[ 9, 15],
[29, 8],
[16, 11],
[72, 78],
[69, 13]]) #当存在都好后, ,后面的是列的前几个索引
#获取二维数组前两行和前两列数据
arr[0:2,0:2] array([[ 9, 15],
[29, 8]])
#将数组的行倒序
arr[::-1] #array([[69, 13, 25, 13, 92, 86],
[72, 78, 49, 51, 54, 77],
[16, 11, 54, 88, 62, 33],
[29, 8, 73, 0, 40, 36],
[ 9, 15, 64, 28, 89, 93]]) #列倒序
arr[:,::-1] #array([[93, 89, 28, 64, 15, 9],
[36, 40, 0, 73, 8, 29],
[33, 62, 88, 54, 11, 16],
[77, 54, 51, 49, 78, 72],
[86, 92, 13, 25, 13, 69]])
3. 变形
使用arr.reshape()函数,注意参数是一个tuple!
基本使用 1.将一维数组变形成多维数组 arr_1.reshape((-1,15)) array([[ 9, 15, 64, 28, 89, 93, 29, 8, 73, 0, 40, 36, 16, 11, 54],
[88, 62, 33, 72, 78, 49, 51, 54, 77, 69, 13, 25, 13, 92, 86]]) 2.将多维数组变形成一维数组 arr_1 = arr.reshape((30,))
4. 级联
就是将表与表拼接
np.concatenate() 1.一维,二维,多维数组的级联,实际操作中级联多为二维数组
arr
array([[ 9, 15, 64, 28, 89, 93],
[29, 8, 73, 0, 40, 36],
[16, 11, 54, 88, 62, 33],
[72, 78, 49, 51, 54, 77],
[69, 13, 25, 13, 92, 86]])
np.concatenate((arr,arr),axis=1) array([[ 9, 15, 64, 28, 89, 93, 9, 15, 64, 28, 89, 93],
[29, 8, 73, 0, 40, 36, 29, 8, 73, 0, 40, 36],
[16, 11, 54, 88, 62, 33, 16, 11, 54, 88, 62, 33],
[72, 78, 49, 51, 54, 77, 72, 78, 49, 51, 54, 77], arr1 = np.random.randint(0,100,size=(5,5))
arr1 [69, 13, 25, 13, 92, 86, 69, 13, 25, 13, 92, 86]]) array([[30, 30, 89, 12, 65],
[31, 57, 36, 27, 18],
[93, 77, 22, 23, 94],
[11, 28, 74, 88, 9],
[15, 18, 80, 71, 88]]) np.concatenate((arr,arr1),axis=1) array([[ 9, 15, 64, 28, 89, 93, 30, 30, 89, 12, 65],
[29, 8, 73, 0, 40, 36, 31, 57, 36, 27, 18],
[16, 11, 54, 88, 62, 33, 93, 77, 22, 23, 94],
[72, 78, 49, 51, 54, 77, 11, 28, 74, 88, 9],
[69, 13, 25, 13, 92, 86, 15, 18, 80, 71, 88]])
ndarray的聚合操作
求和np.sum
求和np.sum arr.sum(axis=0)
array([195, 125, 265, 180, 337, 325]) 最大最小值:np.max/ np.min
3.平均值:np.mean()
ndarray的排序
1. 快速排序
np.sort()与ndarray.sort()都可以,但有区别: np.sort()不改变输入
ndarray.sort()本地处理,不占用空间,但改变输入
np.sort(arr,axis=0) array([[ 9, 8, 25, 0, 40, 33],
[16, 11, 49, 13, 54, 36],
[29, 13, 54, 28, 62, 77],
[69, 15, 64, 51, 89, 86],
[72, 78, 73, 88, 92, 93]]) arr.sort(axis=0)
arr array([[ 9, 8, 25, 0, 40, 33],
[16, 11, 49, 13, 54, 36],
[29, 13, 54, 28, 62, 77],
[69, 15, 64, 51, 89, 86],
[72, 78, 73, 88, 92, 93]])
数据分析三剑客 numpy,oandas,matplotlib的更多相关文章
- 数据分析三剑客 numpy,oandas,matplotlib(2)
Pandas的数据结构 导入pandas: 三剑客 import pandas as pd from pandas import Series,DataFrame import numpy as n ...
- python数据分析基础——numpy和matplotlib
numpy库是python的一个著名的科学计算库,本文是一个quickstart. 引入:计算BMI BMI = 体重(kg)/身高(m)^2假如有如下几组体重和身高数据,让求每组数据的BMI值: w ...
- 数据分析之Numpy、Matplotlib库
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 菜鸟教程:https://www.run ...
- python数据分析之numpy、matplotlib的使用
5.3 Python的科学计算包 - Numpy numpy(Numerical Python extensions)是一个第三方的Python包,用于科学计算.这个库的前身是1995年就开始开发的一 ...
- Python——数据分析,Numpy,Pandas,matplotlib
由于图片内容太多,请拖动至新标签页再查看
- 数据分析 之 NumPy
目录 简单了解数据分析 Python数据分析三剑客(Numpy,Pandas,Matplotlib) 简单使用np.array() 使用np的routines函数创建数组 ndarray N维数组对象 ...
- 数据分析三剑客之numpy
Numpy 简介 数据分析三剑客:Numpy,Pandas,Matplotlib NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算, ...
- python数据分析三剑客之: Numpy
数据分析三剑客之: Numpy 一丶Numpy的使用 numpy 是Python语言的一个扩展程序库,支持大维度的数组和矩阵运算.也支持针对数组运算提供大量的数学函数库 创建ndarray # 1 ...
- python 数据分析工具之 numpy pandas matplotlib
作为一个网络技术人员,机器学习是一种很有必要学习的技术,在这个数据爆炸的时代更是如此. python做数据分析,最常用以下几个库 numpy pandas matplotlib 一.Numpy库 为了 ...
随机推荐
- & 和 && 的区别,与(&)运算符、位移运算符(<< 、>>、>>>)的含义及使用(Java示例)
& 和 && 的区别,与(&)运算符.位移运算符(<< .>>.>>>)的含义及使用(Java示例) 1. & 和 & ...
- 并发编程~~~多线程~~~守护线程, 互斥锁, 死锁现象与递归锁, 信号量 (Semaphore), GIL全局解释器锁
一 守护线程 from threading import Thread import time def foo(): print(123) time.sleep(1) print('end123') ...
- Memcached 基本语法 记录
set 命令:命令将value数值存储在指定的key中: set key flags exptime bytes [noreply] value key:键值 key-value 结构中的 key,用 ...
- 打包Python文件为exe
pip install pyinstaller 然后就在终端里执行命令 cd 到目标文件的目录下 执行 pyinstaller -F ***.py 即可生成exe
- [Linux] 安装grafana并且添加influxdb监控
安装grafana,官网提供了ubuntu的安装包,直接进行安装 wget https://dl.grafana.com/oss/release/grafana_6.5.1_amd64.deb dpk ...
- s3c2440裸机-UART编程(二、UART编程实现)
UART编程 1.初始化 我们的2440支持3个UART串口,以uart0为例讲解. 那么我们需要实现以下这几个函数完成串口的最基本功能: (1)uart0_init()用于初始化串口 (2)putc ...
- 一段tomcat的maven插件配置
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-mave ...
- golang数据结构之单链表
实现单链表的增删查改. 目录如下: singleLink.go package link import ( "fmt" ) //HeroNode 链表节点 type HeroNod ...
- Java连载47-多态基础语法、作用
一.多态的语法 1.两个类之间没有继承关系的,使用多态是不能编译的. 2.无论向上还是向上转型,都需要有继承关系. 3.什么时候需要向下转型? 当调用的方法或者属性是子类型特有的,在父类型中不存在,就 ...
- jTessBoxEditor训练识别库
1.背景 前文已经简要介绍tesseract ocr引擎的安装及基本使用,其中提到使用-l eng参数来限定语言库,可以提高识别准确率及识别效率. 本文将针对某个网站的验证码进行样本训练,形成自己的语 ...