Numpy

什么是数据分析

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

Numpy模块

Numpy概述

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

Numpy的属性

ndim:返回数组的维度数

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

size:返回数组的长度

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

array()函数

1551593-20190714195856399-256852424.png

注意:

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

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

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

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

1551593-20190714195905645-483207966.png

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的索引操作

1551593-20190714195922835-1767988197.png

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

Numpy的切片操作

1551593-20190714195931828-1202980006.png

1551593-20190714195940078-1130573654.png

1551593-20190714195947565-183051419.png

1551593-20190714195957881-1687814002.png

Numpy的变形操作

1551593-20190714200006819-1408618769.png

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

Numpy的级联操作

1551593-20190714200016149-1216755697.png

不匹配级联:

1551593-20190714200025272-1202478429.png

级联需要注意的是:

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)1551593-20190714195830663-2027513295.png

转载于:https://www.cnblogs.com/oden/p/11185429.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值