数据分析:

是不把隐藏在看似杂乱无章的数据域背后的信息提炼出来,总结出所研究对象内在规律

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的更多相关文章

  1. 数据分析三剑客 numpy,oandas,matplotlib(2)

    Pandas的数据结构 导入pandas:  三剑客 import pandas as pd from pandas import Series,DataFrame import numpy as n ...

  2. python数据分析基础——numpy和matplotlib

    numpy库是python的一个著名的科学计算库,本文是一个quickstart. 引入:计算BMI BMI = 体重(kg)/身高(m)^2假如有如下几组体重和身高数据,让求每组数据的BMI值: w ...

  3. 数据分析之Numpy、Matplotlib库

    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 菜鸟教程:https://www.run ...

  4. python数据分析之numpy、matplotlib的使用

    5.3 Python的科学计算包 - Numpy numpy(Numerical Python extensions)是一个第三方的Python包,用于科学计算.这个库的前身是1995年就开始开发的一 ...

  5. Python——数据分析,Numpy,Pandas,matplotlib

    由于图片内容太多,请拖动至新标签页再查看

  6. 数据分析 之 NumPy

    目录 简单了解数据分析 Python数据分析三剑客(Numpy,Pandas,Matplotlib) 简单使用np.array() 使用np的routines函数创建数组 ndarray N维数组对象 ...

  7. 数据分析三剑客之numpy

    Numpy 简介 数据分析三剑客:Numpy,Pandas,Matplotlib NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算, ...

  8. python数据分析三剑客之: Numpy

    数据分析三剑客之: Numpy 一丶Numpy的使用 ​ numpy 是Python语言的一个扩展程序库,支持大维度的数组和矩阵运算.也支持针对数组运算提供大量的数学函数库 创建ndarray # 1 ...

  9. python 数据分析工具之 numpy pandas matplotlib

    作为一个网络技术人员,机器学习是一种很有必要学习的技术,在这个数据爆炸的时代更是如此. python做数据分析,最常用以下几个库 numpy pandas matplotlib 一.Numpy库 为了 ...

随机推荐

  1. SQL Server查询数据库表字段类型

    select b.name,a.name,c.name,a.xprec,a.xscalefrom  syscolumns aleft outer join sysobjects b ON a.id=b ...

  2. python-初始网络编程

     一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层 ...

  3. github.com/pkg/errors库学习

    为了理解go error,进一步学习github.com/pkg/errors作的训练. http://www.shtml.net/article/content/tok/48369/id/37733 ...

  4. 201871010101-陈来弟《面向对象程序设计(java)》第一周学习总结

    项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>http ...

  5. 解决问题:Red Hat Enterprise Linux 7 64 位 虚拟机安装后无法启动图形化

    原因: 1.系统在创建时,没有安装图形化 2.系统在安装后,有降低内存的操作,内存过低无法启动桌面,以及其他 就原因一进行图形化安装: 1.VMware挂载Red Hat Enterprise Lin ...

  6. Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) D2. Optimal Subsequences (Hard Version) 数据结构 贪心

    D2. Optimal Subsequences (Hard Version) This is the harder version of the problem. In this version, ...

  7. IT兄弟连 Java语法教程 流程控制语句 控制循环结构3

    使用continue忽略本次循环剩下的语句 continue的功能和break有点类似,区别是continue只是忽略本次循环剩下的语句,接着开始下一次循环,并不会终止循环:而break则是完全终止循 ...

  8. Redis+Keepalived

    简介 Redis高可用方案,保障两台Redis任意节点故障可正常使用. 方案:Redis主从复制+Redis哨兵+Keepalived 环境 系统:Centos/Radhat 7 服务1:Redis ...

  9. Spring核心(IoC) 入门解读

    什么是IoC容器和Bean? 说到容器,就是用来装东西,那么这里边装的是什么那?是bean对象.那么你会问什么是bean?这就要从很久很久以前说起,当我们创建对象的时候,我们会new一个对象出来,但是 ...

  10. C# ICloneable,shallow clone,deep clone.

    [Serializable] public class Person:ICloneable { public string Name { get; set; } public int Id { get ...