数据分析三剑客 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库 为了 ...
随机推荐
- 通过存储过程(SP)实现SQL Server链接服务器(LinkServer)的添加
1. 背景 当系统的微服务化做的不是很高的时候,部分功能要通过DB LinkServer 来实现跨 Server 查询,当然,有时候BI抽数据.DBA数据库维护可能也会创建LinkServer. 特别 ...
- glibc提供的malloc()的调试工具
关键词:MALLOC_CHECK_.mtrace().muntrace().MALLOC_TRACE.mprobe().-lmcheck等等. 1. MALLOC_CHECK_环境变量(double ...
- HTML5应用 转 Android、Windows Phone 应用
一.HTML5 转 Android 目标SDK:API 20 1.新建一个 Blank Activity 的应用 2.在 AndroidManifest.xml 文件中添加联网权限 <uses- ...
- Python 获 Mozilla 和扎克伯格夫妇 40 余万美金资助
Python 软件基金会近日发文宣布,收到来自 Mozilla Corporation 和 Chan Zuckerberg Initiative(CZI)的资金赞助,共计 407,000 美元.这笔款 ...
- 【tf.keras】tf.keras使用tensorflow中定义的optimizer
Update:2019/09/21 使用 tf.keras 时,请使用 tf.keras.optimizers 里面的优化器,不要使用 tf.train 里面的优化器,不然学习率衰减会出现问题. 使用 ...
- Java面试题的个人总结
面试总结 第一轮:电话初面 第二轮:技能面谈[技能职位尽量避免多谈处理上的作业] 第三轮:高管复试 第四轮:HR终究供认 一面:首要供认对阿里的意向度(假定异地更会考虑对作业地址(杭州)的意向度!阿里 ...
- LDAP认证
1.LDAP介绍 LDAP,(Light Directory Access Protocol),基于X.500标准的轻量级目录访问协议,类似于目录服务一样,是一个为查询浏览和搜索的数据库,优势在于他的 ...
- 网络传播模型Python代码实现
SI模型 import numpy as np import matplotlib.pyplot as plt import smallworld as sw #邻接矩阵 a = sw.a # 感染率 ...
- 用 Python 批量下载百度图片
为了做一个图像分类的小项目,需要制作自己的数据集.要想制作数据集,就得从网上下载大量的图片,再统一处理. 这时,一张张的保存下载,就显得很繁琐.那么,有没有一种方法可以把搜索到的图片直接下载到本地 ...
- 解决邮件发送错误:503 Error: need EHLO and AUTH first
引用文章 https://blog.csdn.net/lingfeian/article/details/96731620 问题描述 2019-07-21 16:14:00.449 ERROR 966 ...