1. 整体复制和按块复制

已知数组:

In [17]: a = np.array([1,2,3])In [18]:

返回如下数组:

array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])

分析:
数组前半部分 1, 1, 1, 2, 2, 2, 3, 3, 3 通过 repeat 函数复制 3 次,后面部分通过 tile 函数复制 3 次,然后合并数据。

In [17]: a = np.array([1,2,3])In [18]: np.hstack((np.repeat(a,3), np.tile(a,3)))
Out[18]: array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])In [19]:

2. 向量化操作

借助 NumPyvectorize 实现操作向量化。原生的 Python 列表不支持向量化操作,两个列表相加默认不是逐个元素相加:

In [19]: a = [1,2,3]In [21]: b = [4,5,6]In [22]: a + b
Out[22]: [1, 2, 3, 4, 5, 6]In [23]:

但是,借助 vectorize 能实现矢量相加, addv 函数就能实现两个数组相加:

In [24]: def add(x, y):...:     return x+y...:     In [25]: addv = np.vectorize(add)In [26]: addv(a, b)
Out[26]: array([5, 7, 9])In [27]:

3. 填充缺失值

如下数组,含有缺失值,使用 -1 填充:

In [32]: a = np.array([[ 0., np.nan,  2.,  3.],...:        [ 4.,  5., np.nan,  7.],...:        [ 8.,  9., 10., 11.],...:        [12., 13., np.nan, 15.],...:        [16., 17., np.nan, 19.],...:        [20., 21., 22., 23.]])

一行代码, np.isnan(a) 逐元素检查,若为空则为 True ,否则为 False ,得到一个与原来 shape 相同的值为 TrueFalse 的数组。

In [34]: a[np.isnan(a)] = -1In [35]: a
Out[35]:
array([[ 0., -1.,  2.,  3.],[ 4.,  5., -1.,  7.],[ 8.,  9., 10., 11.],[12., 13., -1., 15.],[16., 17., -1., 19.],[20., 21., 22., 23.]])In [36]:

4. 找缺失值

NumPy 使用 np.nan 标记缺失值,给定如下数组 a,求出缺失值的索引。如下使用 where 函数,返回满足条件的位置索引:

In [36]: a = np.array([ 0.,  1., np.nan,  3., np.nan, np.nan,  6.,  7.,  8.,  9.])In [37]: a
Out[37]: array([ 0.,  1., nan, ...,  7.,  8.,  9.])In [38]: np.where(np.isnan(a))
Out[38]: (array([2, 4, 5], dtype=int64),)In [39]:

5. 返回无缺失值的行

**给定数组,找出没有任何缺失值的行:

In [39]: a = np.array([[ 0., np.nan,  2.,  3.],...:        [ 4.,  5., np.nan,  7.],...:        [ 8.,  9., 10., 11.],...:        [12., 13., np.nan, 15.],...:        [16., 17., np.nan, 19.],...:        [20., 21., 22., 23.]])In [39]: In [40]: m = np.sum(np.isnan(a), axis=1) == 0In [41]: m
Out[41]: array([False, False,  True, False, False,  True])In [42]: a[m]
Out[42]:
array([[ 8.,  9., 10., 11.],[20., 21., 22., 23.]])In [43]:

Numpy 整体复制、按块复制、向量化操作、寻找缺失值、填充缺失值相关推荐

  1. Numpy 多维数组变为常量、增加维度、元素复制、按块复制、横轴竖轴合并数组、连接数组

    1. flatten NumPy 的 flatten 函数也有改变 shape 的能力,它将高维数组变为向量.但是,它会发生数组复制行为. In [57]: m = np.random.randint ...

  2. CAD制图中如何复制图块操作?

    不少的CAD设计师都会把常用的图形设置成块,用时直接插入.CAD中如何把图形复制为块?感兴趣或者想学习的小伙伴不妨跟着小编一起来看具体操作步骤: 1.在我们的电脑桌面上方找到XUN 捷CAD编辑器的图 ...

  3. VIM选择文本块/复制/粘贴

    在正常模式下(按ESC进入)按键v进入可视化模式,然后按键盘左右键或h,l键即可实现文本的选择. 其它相关命令: v:按字符选择.经常使用的模式,所以亲自尝试一下它. V:按行选择.这在你想拷贝或者移 ...

  4. 如何处理SQL Server事务复制中的大事务操作

    如何处理SQL Server事务复制中的大事务操作 事务复制的工作机制 事务复制是由 SQL Server 快照代理.日志读取器代理和分发代理实现的.快照代理准备快照文件(其中包含了已发布表和数据库对 ...

  5. 前端er怎样操作剪切复制以及禁止复制+破解等

    前言 有时候我们经常会碰到这些场景:玩掘金.知乎的时候复制一段文字,总是会在内容后面加上一些版权信息,以及像小说网站等都有禁止选中,禁止复制这种功能,还有点击自动复制账号的功能. 我也经常遇到这些场景 ...

  6. hexo博客yilia主题添加复制代码块功能

    博客中的复制代码块功能还是挺实用的,本文参考自 这个博客,感谢并膜拜这位大佬,该博客应该是yilia主题添加复制代码块功能的首创,详细记录了整个过程,看起来比较繁琐(无贬义),所以我单独整理一份最终版 ...

  7. 前端er怎样操作剪切复制以及禁止复制+破解等 1

    前言 有时候我们经常会碰到这些场景:玩掘金.知乎的时候复制一段文字,总是会在内容后面加上一些版权信息,以及像小说网站等都有禁止选中,禁止复制这种功能,还有点击自动复制账号的功能. 我也经常遇到这些场景 ...

  8. poi操作excel,复制sheet,复制行,复制单元格

    项目中,我们经常使用Poi来操作excel,但是经常碰到一个不方便的地方,不如最简单常用的,在两个excel之间复制sheet,复制行,复制单元格等. 我这里是最近刚做的一个简单封装.不是很好,必须始 ...

  9. poi操作excel,复制sheet,复制行,复制单元格 .

    http://blog.csdn.net/wutbiao/article/details/8696446 项目中,我们经常使用Poi来操作excel,但是经常碰到一个不方便的地方,不如最简单常用的,在 ...

最新文章

  1. 院士张钹:AI奇迹短期难再现 深度学习技术潜力已近天花板
  2. ipad php mysql_如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1
  3. 腾讯的模板引擎---artTemplate
  4. Java Thread类的使用
  5. OpenStack collectd的从零安装服务端
  6. C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序
  7. 网站防止SQL注入方法
  8. Comparable and Comparator API
  9. mfc gridctrl 设置某列自动伸长_三明桥梁智能张拉设备数控智能张拉系统全自动智能张拉系统...
  10. 常见排序算法整理1(C++实现)
  11. 做一个简易jsp项目的详细开发流程及步骤
  12. 信号硬件入门--振幅调制信号发生器(正弦波发生器方案、AM调制方案)--First理论部分
  13. 【uniapp小程序】—— APP项目云打包(安卓)
  14. 读《美国交通信号配时实践经验》后的感受
  15. rpc调用和http调用有什么区别
  16. 曾经的荣誉,偶然被唤醒
  17. 星巴克中国咖啡创新产业园正式动工,追加项目总投资至近11亿元
  18. cura切片操作学习
  19. linux已经读写次数ssd剩余,固态硬盘ssd写入量剩余读写次数怎样查
  20. 查找/下载文献的一些网址汇总

热门文章

  1. 使用Maven打包生成的-SNAPSHOT.jar与-RELEASE.jar分别代表什么?SNAPSHOT是什么意思?RELEASE是什么意思?
  2. Jquery DIV滚动至浏览器顶部后固定不动代码
  3. 2022-2028年中国降解塑料聚酯行业运行动态及投资机会分析报告
  4. 数据结构(04)— 线性顺序表实战
  5. Linux shell 学习笔记(5)— 文件权限(添加、修改、删除用户及创建、修改群组)
  6. Lampiao靶机渗透测试
  7. 【Tensorflow】tf.nn.atrous_conv2d如何实现空洞卷积?膨胀卷积
  8. 字符串编辑距离(Edit Distance)
  9. 自动驾驶系统关系与自动泊车原理
  10. HarmonyOS 点击事件的实现