一日一技:NumPy进阶修炼

一日一技:NumPy进阶修炼

文章来源:早起Python

作者:刘早起

想学好NumPy先搞定基础,本文将细致讲解一些NumPy的基础操作,记得启动Jupyter Notebook一边敲一边学,我们开始吧

关于Jupyter Notebook的安装及基础操作可以看这篇文章:盘一盘 Python 系列特别篇 - Jupyter Notebook

1

创建并查看数据

首先导入并查看NumPy版本,我的版本是1.17.2,由于版本不同可能有些代码写法不一样

一日一技:NumPy进阶修炼

接着我们来创建一个数组????

一日一技:NumPy进阶修炼

当然我们可以将列表嵌套在列表中创建一个二维数组????

一日一技:NumPy进阶修炼

接下来我们查看这两个数组的维数????

一日一技:NumPy进阶修炼

OK,和我们预想的一样,接着我们查看数据的shape属性

一日一技:NumPy进阶修炼

这个shape不好翻译,有说是矩阵维数也有说是形状的,从结果来看a的shape属性为(3,)意思a是一维数组,有3个元素,b的shape属性为(2,3)说明b是二维数组,每行有3个元素,想一想np.array([[1,2]]).shape应该返回什么

一日一技:NumPy进阶修炼

(1,2)说明该数组是一个1行2列的二维数组,OK我们接着来查看在第一期中重点介绍的数据类型????

一日一技:NumPy进阶修炼

可以看到,a是int64说明存储a将消耗8个字节,而在第一期我们就说过,使用NumPy的好处是可以自定义数据类型,因此我们可以指定a的数据类型为int16来减少内存占用

一日一技:NumPy进阶修炼

现在我们来看下修改前后a的大小变化(8—>2)

一日一技:NumPy进阶修炼

接着我们来获取一下数组的元素个数????

一日一技:NumPy进阶修炼

在知道数据的每个元素大小和元素个数之后我们就可以计算ab的总内存占用,即元素个数*元素大小

一日一技:NumPy进阶修炼

可以看到存储a将消耗6个字节而存储b将消耗48个字节,不过也有现成的方法.nbytes可以直接获取

一日一技:NumPy进阶修炼

当然结果是一样的,现在我们对NumPy 数组中的一些重要的基础属性有了一定了解之后我们来学习如何访问/修改数据

2

访问并修改数据

我们重新创建一个数组

一日一技:NumPy进阶修炼

可以看到a是一个2行7列的矩阵,现在我们可以像使用list一样来访问a中的元素,比如我们提取第2行的6和2(第二行的第二个和倒数第二个元素)

一日一技:NumPy进阶修炼

当然也可以使用类似的方法访问整行/整列

一日一技:NumPy进阶修炼

还有一些其他的方法,比如每隔2个数访问一次第一行中从第二个数据到第7个数据的两种写法

一日一技:NumPy进阶修炼

在学会如何访问NumPy数组中元素之后,现在我们学习修改数组中元素,比如修改第2行第2列数据????

一日一技:NumPy进阶修炼

也可以修改一整列数据????

一日一技:NumPy进阶修炼

上面都是使用一维或二维的数据来示例,如果是更高维的数组操作是类似的,比如我们创建一个三维数组

一日一技:NumPy进阶修炼

我们可以使用类似的方法来访问数组中的元素

一日一技:NumPy进阶修炼

不过修改数据的时候需要保证数据维度是一致的,否则就会报错

一日一技:NumPy进阶修炼

3

结束语

OK,以上就是NumPy进阶修炼第二期的全部内容,这些基础操作你都会吗?源码将在NumPy系列完结之后给出,所以想学好NumPy的读者可以自己动手敲一遍,研究一遍。因为从我的经验来看,敲这一遍代码很有可能是你唯一一次将这些NumPy基础操作好好思考一遍。收藏起来等以后再学等着等着就忘记了一日一技:NumPy进阶修炼更深入的操作我们下期再见,拜拜~

如果你觉得文章不错的话,分享、收藏、在看是对猴哥的最大支持,是猴哥持续创作的动力。

一日一技:NumPy进阶修炼

老表Pro已经满了

所以大家加老表Max吧

每日留言

说说你最近遇到的一个编程问题

或者新学的一个小技巧?

(字数不少于15字)

一日一技:NumPy进阶修炼

完整Python基础知识要点

Python小知识 | 这些技能你不会?(一)

Python小知识 | 这些技能你不会?(二)

Python小知识 | 这些技能你不会?(三)

Python小知识 | 这些技能你不会?(四)

近期推荐阅读:

【1】整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了

【2】【终篇】Pandas中文官方文档:基础用法6(含1-5)

觉得不错就点一下“在看”吧 

一日一技:NumPy进阶修炼

相关文章: