Numpy详解,带你一步步了解Numpy(一)

目录

一、介绍

二、主要内容

1、数据的类型

2、从列表创建数组

 3、Numpy数组的基础

 4、数组切片:访问子数组

 5、 多维数组

 6、子数组作为不可复制视图

 7、创建数组的副本

 8、重塑数组大小

 9、串联数组

 10、数组的分割

 11、循环效率问题


一、介绍

1、Numpy是python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

2、在实际运用的第一步,不管数据是什么类型的,首先将其转化为数字数组才可以进行分析

二、主要内容

1、数据的类型

(1)在python中,数据类型是动态推断的,类型的灵活性表明,python变量不仅仅是包含它们的值,而且还包含了关于这个值类型的额外信息例如。

x=1
x='one'

 简单的两变量中,同时包含着他的参考数量,类型,以及大小等信息

L=[True,'2',3.0,4]
[type(item)for item in L]

 

列表的优点是灵活性:因为每个列表元素都是包含数据和类型信息....的完整结构

但是,如果列表中的所有变量都是相同类型的,那么很多额外的信息都是多余的。

 

固定类型numpy样式的数组缺乏列表的灵活性,但在存储和操作数据方面要高效得多。

Numpy不仅提供了基于数组的数据结构的高效存储,而且还提供了对该数据的高效操作。

2、从列表创建数组

 如果数组中的元素类型不匹配,Numpy将尽可能向上转换。

 

使用关键字" dtype "显式设置结果数组的数据类型

 

 创建一个包含三个整数的未初始化数组(值将是该内存位置上已经存在的任何值)。

 随机创建

 3、Numpy数组的基础

Numpy数组有固定的类型。因此,如果您试图将一个浮点值插入到一个整型数组中,该值将被静默地截断。

 4、数组切片:访问子数组

 

 5、 多维数组

多维数组切片方式与一维类似,先切行,后切行里面的元素

 6、子数组作为不可复制视图

Python list切片返回原始列表数据的副本。

Numpy数组片返回原始数组数据的视图。

 可见,当切片后的数组发生改变,原先的数组也会发生对应的变化

 7、创建数组的副本

所以,为了防止原数据被更改,我们需要使用数组的副本进行修改

发现,当使用了copy函数之后,原先数组的内容没有被改变

 8、重塑数组大小

 将一维数组转换为二维行或列矩阵可以使用重塑()方法完成,也可以在切片操作中使用关键字newaaxis。

 9、串联数组

在Numpy中,连接或连接两个数组主要通过以下例程完成:

  • np.concatenate ()
  • np.vstack ()
  • np.hstack ()

多维的合并

 重塑与新增维度组合运用

hstack()是横向拉伸
vstack()是纵向排列

 10、数组的分割

与拼接相反的是分割,它由以下函数实现:

  • np.split ()
  • np.vsplit ()
  • np.hsplit ()

 同样的,存在纵向分割和横向分割

 11、循环效率问题

Numpy数组上的计算可以非常快,也可以非常慢

所以在Numpy或者说十python的计算工程中,请尽量避免嵌套式的循环出现

 由于内容过多,将会在接下来的文章中再做介绍,本文章内容到此,后续会有更新。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值