numpy 获取特定数值的索引_NumPy初学教程,可视化指南

4649b1672475145f01bf3a1b213a6612.png

数据科学三分天下,Python占其一。Python数据科学 NumPy是基础,不管pandas还是tensorflow, NumPy都是基础库,学习NumPy基础类型和操作必不可少。本文我们就介绍NumPy基础,并以图形方式展现,以方便初学者理解。

概述

NumPy中最基本数据类型是数组,所有数据组织都是n维数组形式组织的。其中一维和二维数组是基础,其他多维数组的操作和其类似。

NumPy数组形式上和Python列表相似。两者都可以用作数据容器,可以快速访问和设置项目,但是数据插入和移动比较慢。

NumPy数组支持对其进行简单算术运算:

0c15ba92df7abc9124f1ed64050b8b60.png

NumPy数组还具有:

比较紧凑,尤其是在一个以上的维度上;

可以向量化操作时比列表快;

将元素追加到末尾比列表慢(O(1)和O(N));

通常是同质的:只能快速处理一种类型的元素;

7d791d0daf843b851256ff8dd48eb3c1.png

注意:O(N)表示完成操作所需的时间与数组的大小成正比,以及O(1),表示消耗时间固定和数组的大小无关。

向量——一维数组

向量初始化:创建NumPy数组的一种方法通过Python列表转换。数组类型会从列表元素类型中自动推导:

3b5d8a2e0108be2dc407c421f35e7adb.png

确保输入为同类型列表,否则其类型dtype='object',不仅转换耗时,而且只保留NumPy中包含的语法糖。

NumPy数组无法像Python列表那样增长:在数组末尾没有保留空间以方便快速追加。

一种常见的做法要么长出一个Python列表,并将其转换为NumPy的数组时,它已准备就绪或预分配必要的空间,可以用np.zeros和np.empty。

ccbae5f05bb3c51ee6fc1cda2cf16011.png

通常可以使用zeros_like()函数创建一个空数组,以大小和元素类型匹配现有数组:

040ece8ae919032698cd1382e49d952d.png

创建以常量值填充的数组的函数都有一个对应的的_like函数:

65e4f5334bbb1c4430f507d2d63913f7.png

在NumPy中,对有序数组有两个初始化函数:argnge()和lispace()

e30fce05e99a19ded55c50777274a670.png

如果需要类似的浮点数组,例如[0., 1., 2.],可以修改arange输出的类型:arange(3).astype(float)。arange函数对类型敏感:如果将int作为参数输入,它将生成int,并且如果输入float(例如arange(3.)),则将生成float。

但是arange在处理浮点数方面并不是特别擅长:

292e4d22551b06df2f9231e13257be1f.png

0.1对于我们来说,这看起来像是一个有限的十进制数,但对计算机而言却不是:用二进制表示,它是一个无穷小数,必须四舍五入到精度需求的位数。所以给arange赋值为小数通常会有问题:会抛出一个错误。可以使间隔的非整数步数,但这会降低可读性和可维护性。

而linspace不受舍入错误的影响,它始终生成要求的元素数量。不过,需要注意的的是它计算的是点,而不是间隔,因此最后一个参数始终,通常认为是加一。因此结果11,而不是上面示例中的10。

在数值计算中,通常需要生成随机数组:

0fea3109bdb629a9b0fe2bc175d6ea41.png

向量索引

一旦将数据保存在了数组中,就可以使用NumPy数组索引对其进行操作。

8366d64a9cb8375cb30a3731b55fbf76.png

除花式索引外,以上介绍的所有索引方法实际上都是所谓的"视图":如果索引的值做操作发生更改,则它们不会影响原始数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值