用numpy如何创建一个空数组?

共 1077字,需浏览 3分钟

 ·

2020-06-14 23:21

8be9a23264df55cd43174399483439c2.webp


     作者:luanhz


     来源:小数志


导读

最近在用numpy过程中,总会不自觉的需要创建空数组,虽然这并不是一个明智的做法,但终究是可能存在这种需求的。本文简单记录3种用numpy生成空数组的方式。


abcd89f8b5b61382a727a16d0de4b1f0.webp


我们的目标是创建一个指定列数、但空无一行的空数组。

00 关于np.empty

首先,numpy有一个"空数组"函数:np.empty(),虽然名字叫empty,但结果可能并不是我们想要的那种:

762b8bfa5fdf31ab452b7bf3c3686a44.webp


实际上,empty之空,空在其值,而非其形。也就说,它只是用于创造一个给定形状、但未初始化实体的数组。例如:

1bc70a9b922a1372b9988b8824219c7b.webp


那么,如果我们需要创建一个没有任何值的数组呢?这里以生成0行3列的空数组为例,笔者想到了3种方案。。




01 numpy指定形状为0

实际上,empty生成的数组当然可以为空,只要我们指定了相应的形状。例如,如果我们传入数组的形状参数为(0,3),则可以生成目标空数组:
c7bbab3bbbfa85a02137717624da214d.webp所以,生成的数组是否为空,不在于你用的是不是empty,而在于传入的形状参数。当然, 这里的empty换成ones或者zeros也都可以,只要形状是(0, 3)即可。


02 利用空列表创建

初始化numpy数组的一种方式是由列表创建,那么当我们传入的列表是空列表时即可创建空数组。特别的,为了创建指定列数的空列表,我们需要传入指定个数的嵌套空列表,然后转置即可。f364f8e343275275baa6b53ddc2c9a4c.webp





03 利用pandas转换生成

numpy和pandas是一对好搭档,常常需要对二者数据进行转换,在创建空数组时自然也可以。为了创建一个空数组,我们可以首先考虑先创建一个空的DataFrame,然后由其转换为numpy对象即实现了创建空数组。
首先,我们创建一个仅有列名、而没有索引和值的空DataFrame:7ea05d197328a7623b48adfa7cc356fb.webp进而,可由该DataFrame对象转化为空数组:
3f531a713ea96015428c34bee3597a66.webp

可能多数情况下并不需要创建空数组,甚至存在更好的替代办法,但就事论事的讲,这些也都不失为一个丰富numpy姿势的小技巧。
736c179ff981a92ad76ab889f3617c8f.webp


◆ ◆ ◆  ◆ 



长按二维码关注我们



数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。


管理员二维码:


猜你喜欢

 笑死人不偿命的知乎沙雕问题排行榜

 用Python扒出B站那些“惊为天人”的阿婆主!

 全球股市跳水大战,谁最坑爹!

 华农兄弟、徐大Sao&李子柒?谁才是B站美食区的最强王者?

 你相信逛B站也能学编程吗

浏览 38
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报