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)

原文地址:https://www.cnblogs.com/oden/p/11185429.html