数据分析:

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

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. MySQL数据库(二)事务

    MySQL的存储引擎InnoDB支持事务,MyISAM不支持事物 数据库事务的四大特性(ACID) 原子性(atomic) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客 ...

  2. RPM常用命令总结

    安装 rpm -ivh package_name (package_name指的是RPM包的文件名) 查询 1.查询是否安装,及安装版本 rpm -q 已安装的软件名(ex:rpm -q docker ...

  3. 002.SQLServer数据库镜像高可用简介

    一 数据库镜像简介 1.1 数据库镜像概述 数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的 SQL Server 数据库引擎服务器实例上. 通常,这些服务器实例驻留在不同位置的计算机上 ...

  4. STL 中 list 的使用

    list 容器实现了双向链表的数据结构,数据元素是通过链表指针串连成逻辑意义上的线性表,这样,对链表的任一位置的元素进行插入.删除和查找都是极快速的.由于list对象的节点并不要求在一段连续的内存中, ...

  5. Pymysql的常见使用方法

    cursor.fetchone()与cursor.fetchall()的区别: cursor.fetchone():只能显示一个数据 cursor.fetchall():才能显示查出来的所有数据  P ...

  6. 《数据挖掘导论》实验课——实验一、数据处理之Numpy

    实验一.数据处理之Numpy 一.实验目的 1. 了解numpy库的基本功能 2. 掌握Numpy库的对数组的操作与运算 二.实验工具: 1. Anaconda 2. Numpy 三.Numpy简介 ...

  7. beego和bee安装问题解决

    如果使用go mod模式,直接安装bee时会报错: go: github.com/beego/bee imports github.com/beego/bee/cmd imports github.c ...

  8. C++ class外的 >> 重载,输入流,重载示例。不应该定义类内的>>重载

    #include <iostream> // overloading "operator >> " outside class // >> 应该 ...

  9. django实现多种支付、并发订单处理

    django实现多种支付方式 ''' #思路 我们希望,通过插拔的方式来实现多方式登录,比如新增一种支付方式,那么只要在项目中新增一个py文件,导入里面的pay方法就可以了,这样在支付业务中支付语句是 ...

  10. 数据库访问接口(ODBC,OLEDB,ADO)

    数据库访问接口发展历史 ODBC历史 ODBC(Open Database Connectivity,开放数据库互连).要了解ODBC是什么,先了解一下数据库连接的相关知识.在最开始连接数据库时,由于 ...