zoukankan      html  css  js  c++  java
  • Numpy

    什么是数据分析

    简单来讲,数据分析就是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律。在数据分析的学习过程中,我们主要应用的书被称为数据分析三剑客的Numpy、Pandas、Matplotlib三个模块。

    Numpy模块

    Numpy概述

    Numpy(Numerical Python)是python中的一个扩展程序库,它提供了Python对N维数组对象的支持:ndarrary,ndarrary数组中的元素必须为同一数据类型,这一点和python中的list是不一样的。Numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

    Numpy的属性

    ndim:返回数组的维度数

    shape:返回一个元组,表示数组的形状

    size:返回数组的长度

    dtype:返回数组元素的数据类型

    array()函数

    注意:

    numpy默认是ndarray的所有的元素类型是相同的

    如果传进来的list总包含不同的类型,则统一为同一种类型,优先级str>float>int

    数组维度的是指list的深度,list中套了几层list

    创建一个numpy数组(数据来源一张图片数据)

    roustines()函数

    常见创建方法:

    创建一个形状为shape的数组,数组元素为1

    np.ones(shape, dtype = None,order = "C")

    创建一个形状为shape的数组,数组元素为0

    np.zeros(shape, dtype = None,order = "C")

    创建一个形状为shape的数组,数组元素为fill_value

    np.full(shape, fill_value, dtype = None, order = "C")

    创建一个一维数组,数组元素为等差数列

    np.linspace(start, stop, num = 50, endpoint = True, retstep = False, dtype = None)

    创建一个一维数组

    np.arange([start, ]stop, [step, ]dtype=None)

    创建一个形状为shape的数组,数组元素为随机值

    np.random.randint(low, high=None, size=None, dtype='l')

    标准正太分布

    np.random.randn(d0, d1, ..., dn)

    生成0到1的随机数,左闭右开

    np.random.random(size=None)

    Numpy的索引操作

    注:Numpy的索引和python中的list的索引是一致的

    Numpy的切片操作

    Numpy的变形操作

    注:reshape(-1,2)表示将数组变形成二维数组,变形后的数组的列数为2,行数为-1,-1表示根据列数自动计算出行数

    Numpy的级联操作

    不匹配级联:

    级联需要注意的是:

    np.hstack与np.vstack跟np.concatnate一样,都是用作于级联,只不过前两个方法的参数中午axis参数。hstack表示横向级联,vstack表示纵向级联

    级联的参数是list,一定要加中括号或者小括号

    维度必须相同

    形状相符:在维度保持一致的前提下,如果进行横向(axis=1)级联,必须保证进行级联的数组行数保持一致。如果进行纵向(axis=0)级联,必须保证进行级联的数组列数保持一致。

    可以通过axis参数改变级联的方向

    Numpy的切分操作

    与级联类似,三个函数完成切分工作:

    np.split(arr,行/列号,轴):参数2是一个列表类型

    np.vsplit

    np.hsplit

    固定时间种子,其作用为可以使得random产生的随机数固定下来
    np.random.seed(10)

    num_arr = np.random.randint(60,100,size=(5,6))

    将num_arr在列索引为2,3的位置进行切分,则原数组被切分成了三分

    np.split(num_arr,[2,3],axis=1)

    将num_arr在行索引为2,3的位置进行切分,则原数组被切分成了三分

    np.split(num_arr,[2,3],axis=0)

  • 相关阅读:
    Overloaded的方法是否可以改变返回值的类型
    parseXXX的用法
    java的类型转换问题。int a = 123456;short b = (short)a;System.out.println(b);为什么结果是-7616?
    UVA 10405 Longest Common Subsequence(简单DP)
    POJ 1001 Exponentiation(大数处理)
    POJ 2318 TOYS(计算几何)(二分)
    POJ 1265 Area (计算几何)(Pick定理)
    POJ 3371 Flesch Reading Ease (模拟题)
    POJ 3687 Labeling Balls(拓扑序列)
    POJ 1094 Sorting It All Out(拓扑序列)
  • 原文地址:https://www.cnblogs.com/oden/p/11185429.html
Copyright © 2011-2022 走看看