专栏首页浊酒清味Python第二十七课:NumPy更多创建数组方法

Python第二十七课:NumPy更多创建数组方法

我们之前学习了手动建立和利用特殊函数Numpy.zeros以及Numpy.ones来创建数组。这节课我们提供更多的方法,让大家可以创建自己想要的数组。

01从其他数据类型转换

我们在讲列表和Numpy数组很像的时候,告诉大家一种讲列表转换成Numpy数组的方法。其实Numpy里面有一个函数,叫asarray可以不仅可以将列表转换成Numpy数组 ,还可以将元组转换成Numpy数组。

我们建立了一个列表a和一个元组b,分别用np.array和np.asarray来转换.其实在将列表和元组转换成numpy数组的时候效果是一样的。也就是说不论是从列表a出发得到的a_1和a_2还是从元组b出发得到的b_1和b_2都是numpy数组[1,2,3]:

但是,他们二者还是有区别的,当数据源是ndarray,即numpy数组的时候,array会复制出一个副本,占用新的内存,但是asarray并不会。从这里看来,对一般的程序任务,我们并不太需要区分array和asarray,除非做大型数据的时候。

02数值范围创建之arrange

很多情况下我们非常想要得到从一个整数到另一个整数的一个数组,比如周一到周日,一天中从1点到24点等,还有从-10度到40度的温度范围。这时候用NumPy中的arange函数就可以帮助你达成这个目标。

arange函数有四个输入参数来调整:start,stop, step, dtype。不难看出来,分别是起始值,终止值,步长(默认是1),还有数据类型。值得注意的是,这里的终止值是取不到的,所以真正意义上而言终止值是(stop-1).

我们一共建立了四个数组,第一个我们只有一个参数,是终止值参数,这时候其他参数都是默认的。第二个数组,我们给定了起始值和终止值。第三个数组我们增加了步长。第四个数组,我们隐藏的其实是步长,也就是取默认值1。大家在看答案之前可以猜一下a,b,c,d分别是多少。

03数值范围创建之linspace

除了用arange函数创建一个数值范围数组,还有一个函数叫linspace也可以做到。linspace其实可以看成linear space的缩写,线性空间。如果大家觉得不好理解,就把它当成一个等差数列就可以。

和arange稍有不同的是,linspace的参数更多,而且没有步长,相反它有个叫做num的参数来控制生成数列的总数目。也就是说,在给定起始值和终止值的时候,步长被总数目决定了。

我们把linspace格式写出来 np.linspace(start, stop, num=50, endpoint = True, retstep = Flase, dtype = None)。你会发现有些地方有等于号,有些地方没有,有等于号的地方就是设定默认值。其中endpoint是调节终止值是否被包含在数组中,默认是包含的。retstep是一个是否显示生成数组间距的参数。

我们分别利用linspace建立了三个数组,第一个我们默认终止值是包含在内的,第二个我们去掉了终止值,最后我们显示数列的间距。

运行结果:

本文分享自微信公众号 - 浊酒清味(gh_39aead19f756)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 前端|利用CSS制作动画效果

    大家是否觉得上面这个图形需要用到的代码会很复杂?其实不然,我们利用简单的css即可达到此种效果。

    算法与编程之美
  • Web|网页制作秘密武器之列表

    列表(list)是指是指在网页中讲相关信息以及条目的方式有序或无序排列而形成的表。常用的列表有无序列表(ul),有序列表(ol)和定义列表(dl)等,接下来,我...

    算法与编程之美
  • Leetcode【789、1017】

    这道题是在二维平面上有一个人从原点出发,每次移动一个单位(东南西北)到目标坐标 target,平面上还有一些鬼 ghosts 每次也移动一个单位到目标坐标。如果...

    echobingo
  • 谈一谈|如何在word中添加画笔效果

    画笔对于我们日常学习最大的好处就是方便做记号,从而突出文件当中的重点内容。这就极大的方便我们下次浏览文件,一定程度上节省了我们的时间。在手机上我们一般都是用手机...

    算法与编程之美
  • golang 笔记

    微观:多个计划任务,顺序执行。在飞快的切换。轮换使用 cpu 时间轮片。 【假 并行】

    landv
  • 客户端基本不用的算法系列:RMQ问题 - ST 算法

    今天的算法可能有点难,但是如果我们只需要会使用 RMQ 问题的 ST 算法模板,这种程度就已经可以了!因为 RMQ 问题除了最优解的 ST 算法,剩下的都是高级...

    用户2932962
  • 谈一谈|下载软件的门道你懂吗?

    当我们在下载一些软件时我们经常会遇到这样一个问题—软件的后缀为什么有这么多?该下载哪一个?这些后缀是什么意思?如图:

    算法与编程之美
  • 【leetcode刷题】T115-二叉树的层次遍历

    https://leetcode-cn.com/problems/binary-tree-level-order-traversal/

    木又AI帮
  • 如何忽略Findbugs的bug

    Ryan-Miao
  • 首届八大高校联合实验室联席技术峰会分论坛盛况回顾篇(二)

    ? 导语:7月11日下午,首届八大高校联合实验室联席技术峰会通过五场技术分论坛有效地连接腾讯技术团队与高校联合实验室之间更深一步的技术碰撞。论坛技术方向覆盖计...

    腾讯高校合作

扫码关注云+社区

领取腾讯云代金券