引言 :

  数据分析 : 就是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出研究对象的内在规律 .

  数据分析三剑客 : Numpy   数组计算

           Pandas   表计算与数据分析

           Matplotlib   绘图和可视化

一 . NumPy

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

2 . NumPy是高性能科学计算和分析的

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

3 . 安装方法 :

  pip install numpy

二 . 创建ndarray

  注意 : 示例均是在jupyter上演示的

1 . 使用 np.array() 创建

# 导包
# 通常都将 numpy简化成np
import numpy as np

  1) . 一维数组的创建

np.array([1,2,3,4.5])

  2) . 二维数组的创建   np.array([[1,2,3,4],[5,6,7,8]])

注意 :

  • numpy默认ndarray的所有元素的类型是相同的
  • 如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int

    

  3) . 使用matplotlib.pyplot获取一个numpy数组,数据来源于图片

2 . 使用 np 的 routines 函数创建

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

例如 :

三 . ndrray---多维数组对象

1 . 常用属性 :

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

2 . 常用方法 :

array.shape                         array的规格
array.ndim
array.dtype array的数据规格
numpy.zeros(dim1,dim2) 创建dim1*dim2的零矩阵
numpy.arange
numpy.eye(n) /numpy.identity(n) 创建n*n单位矩阵
numpy.array([…data…], dtype=float64 )
array.astype(numpy.float64) 更换矩阵的数据形式
array.astype(float) 更换矩阵的数据形式
array * array 矩阵点乘
array[a:b] 切片
array.copy() 得到ndarray的副本,而不是视图
array [a] [b]=array [ a, b ] 两者等价
name=np.array(['bob','joe','will']) res=name==’bob’ res= array([ True, False, False], dtype=bool)
data[True,False,…..] 索引,只索取为True的部分,去掉False部分
通过布尔型索引选取数组中的数据,将总是创建数据的副本。
data[ [,,,] ] 索引,将第4,,,6行摘取出来,组成新数组
data[-]=data[data.__len__()-]
numpy.reshape(a,b) 将a*b的一维数组排列为a*b的形式
array([a,b,c,d],[d,e,f,g]) 返回一维数组,分别为[a,d],[b,e],[c,f],[d,g]
array[ [a,b,c,d] ][:,[e,f,g,h] ]=array[ numpy.ix_( [a,b,c,d],[e,f,g,h] ) ]
array.T array的转置
numpy.random.randn(a,b) 生成a*b的随机数组
numpy.dot(matrix_1,matrix_2) 矩阵乘法
array.transpose( (,,,etc.) ) 对于高维数组,转置需要一个由轴编号组成的元组

四 . ndarray的基本操作

、数组和标量之间的运算
a+ a* //a a**0.5
、同样大小数组之间的运算
a+b a/b a**b
、数组的索引:
一维数组:a[]
多维数组:
列表式写法:a[][]
新式写法:a[,] (推荐)
数组的切片:
一维数组:a[:] a[:] a[:] =
多维数组:a[:, :] a[:,:] a[:,]
、强调:与列表不同,数组切片时并不会自动复制,在切片数组上的修改会影响原数组。 【解决方法:copy()】

1 . 索引

      一维与列表完全一致 , 多维同理

2 . 切片

    1) .  一维与列表完全相同 , 多维同理

    2) . 将数据进行反转 , 例如 : [1,2,3] --> [3,2,1]

  3) . 对图片进行操作

3 . 变形

  使用 reshape()函数,注意一个参数是 --- tuple !

4 . 级联

  np.concatenate()

级联需要注意的点:

  • 级联的参数是列表:一定要加中括号或小括号
  • 维度必须相同
  • 形状相符:在维度保持一致的前提下,如果进行横向(axis=1)级联,必须保证进行级联的数组行数保持一致。如果进行纵向(axis=0)级联,必须保证进行级联的数组列数保持一致。
  • 可通过axis参数改变级联的方向

5 . 切割

  给图片进行切割

原图片 :

五 . 数学和统计方法

常用函数:

    sum    求和
cumsum 求前缀和
mean 求平均数
std 求标准差
var 求方差
min 求最小值
max 求最大值
argmin 求最小值索引
argmax 求最大值索引

六 . ndarray的排序

np.sort() 和 ndarray.sort() 的区别 :

  • np.sort()  不改变输入
  • ndarray.sort()  本地处理,不占用空间,但改输入

七 . 随机数生成

随机数生成函数在np.random子包内
常用函数 :

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

数据分析之Numpy-数组计算的更多相关文章

  1. Python数据分析之numpy数组全解析

    1 什么是numpy numpy是一个在Python中做科学计算的基础库,重在数值计算,也是大部分Python科学计算库的基础库,多用于大型.多维数据上执行数值计算. 在NumPy 中,最重要的对象是 ...

  2. NumPy(数组计算)

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

  3. Numpy数组计算

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

  4. NumPy:数组计算

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

  5. numpy数组常用计算

    在说numpy库数组的计算之前先来看一下numpy数组形状的知识: 创建一个数组之后,可以用shape来查看其形状,返回一个元组 例如:a = np.array([[1, 2, 3], [4, 5, ...

  6. numpy之数组计算

    # coding=utf-8import numpy as npimport random #数组和数字计算,进行广播计算,包括加减乘除 t8 = t8 +2 print(t8,t8.dtype,t8 ...

  7. Python数据分析工具库-Numpy 数组支持库(一)

    1 Numpy数组 在Python中有类似数组功能的数据结构,比如list,但在数据量大时,list的运行速度便不尽如意,Numpy(Numerical Python)提供了真正的数组功能,以及对数据 ...

  8. 科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数)

    Mlab了解 Mlab是Mayavi提供的面向脚本的api,他可以实现快速的三维可视化,Mayavi可以通过Mlab的绘图函数对Numpy数组建立可视化. 过程为: .建立数据源 .使用Filter( ...

  9. 数据分析入门——numpy类库基础知识

    numpy类库是数据分析的利器,用于高性能的科学计算和数据分析.使用python进行数据分析,numpy这个类库是必须掌握的.numpy并没有提供强大的数据分析功能,而是它提供的ndarray数据结构 ...

随机推荐

  1. SQL Server 批量插入数据

    请看代码: 创建表值参数类型: 请看代码:

  2. How to Change the Size of a Box-Plot Label in MATLAB

    Type "load carsmall" to load a sample data set included with MATLAB. Type "boxplot(Ho ...

  3. 使用PE工具箱 ughost 恢复系统导致被捆绑一堆软件的问题

    很多的pe系统,都有这么一个东西, 没啥技术含量,就是给ghost 加一个UI 而已 , 但是使用这玩意恢复系统,会被感染一些捆绑软件 ,开机之后就会卡顿, 并下载一堆软件 包括  爱奇艺 , 百度搜 ...

  4. 一个MySql Sql 优化技巧分享

    有天发现一个带inner join的sql 执行速度虽然不是很慢(0.1-0.2),但是没有达到理想速度.两个表关联,且关联的字段都是主键,查询的字段是唯一索引. sql如下: SELECT p_it ...

  5. Windows下ruby安装和ri设置

    1. ruby最强大的web框架ruby on rails .必学的.所以可以直接安装RailsInstaller. 地址:http://www.railsinstaller.org/en .安装过程 ...

  6. flask第十七篇——模板【1】

    从这一节开始我们就正式进入flask一个重要的模块——模板了. 我们平时看的知乎平台就是Python开发的,可以看到他的很多页面布局都是一样的,比如你现在搜“如何自学Python”,去知乎看他的页面是 ...

  7. angular的指令独立作用域(以及$watch的使用)

    在编写指令的时候,会有一个独立作用域的问题(scope),他默认的是 scope:false 不创建自己的作用域,直接使用的就是父级的作用域, 问题:容易出现全局的污染,是的指令的重复性使用回出现一些 ...

  8. Web Service简介(一)

    这篇博文,我们对Web Service进行一个简单的介绍和认识,作为Web Service的入门.在学习之前,你需要对HTML和XML有基本的了解,Web Service并不难,而且非常的简单. 什么 ...

  9. ASP.NET比较常用的26个性能优化技巧

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...

  10. Editplus配置Java、Python、C/C++ (基于VS2010) 编译环境

    1. 为什么要配置EditPlus使其能够编译运行Java.Python.C/C++等程序? EditPlus是一款轻量级(大约2M)的文本编辑器,实际开发中,只需要关联相应的编译工具就可以化身为一个 ...