Numpy数组使你可以将许多种数据处理任务表述为简洁的数组表达式(否则需要编写循环)。

用数组表达式代替循环的做法,通常被称为矢量化。一般来说,矢量化数组运算要比等价的纯跑一趟湖南快

上一两个数量级(甚至更多),尤其是各种数值计算。

将条件逻辑表述为数组运算 np.where

where 第二需求:

where 的第二个和第三个参数不必是数组,他们都可以是标量值。在数据分析工作中,where通常用于根据另一个

数组而产生一个新的数组。假设有一个由随机数据组成的矩阵,您希望将所有正值替换为2, 将所有负值替换为-2.若利用np.where,则会非常简单:

看例子:

更复杂的数据逻辑例子:

数学和统计方法

详情点击:Numpy 的数学和统计方法

用于布尔型数组的方法

在上面的方法中,bool类型会强制转换为1和0。因此, sum经常被用来对布尔型数组中的True值计数:

另外还有两个方法any和all, 他们对布尔型数组非常有用。any用于测试数组中是否存在一个或多个True, 而all则检查数组中所有值是否都是True:

这两个方法也能用于非布尔型数组, 所有非0元素将会被当作True。

排序

跟Python内置的列表类型一样, Numpy数组也可以通过sort方法就地排序:

注意:

顶级方法np.sort返回的是数组的已排序副本, 而就地排序则会修改数组本身。

计算数组分位数最简单的方法是对其进行排序, 然后选取特定位置的值:

唯一化以及其他的集合逻辑

Numpy提供了一些针对一维ndarray的基本集合运算。最常用的可能要数np.unique 了, 它用于找出数组中唯一值

并返回已排序的结果:

而python代码对比一下

另一个函数np.inld用于测试一个数组中的值在另一个数组中的成员资格, 返回一个布尔型数组:

数组的集合运算方法

Numpy 利用数组进行数据处理的更多相关文章

  1. numpy利用数组进行数据处理

    将条件逻辑表述为数组运算 numpy.where()是一个三目运算的表达式 In [34]: xarr = np.array([1.1,1.2,1.3,1.4,1.5]) In [35]: yarr ...

  2. numpy使用数组进行数据处理

    numpy使用数组进行数据处理 meshgrid函数 理解: 二维坐标系中,X轴可以取三个值1,2,3, Y轴可以取三个值7,8, 请问可以获得多少个点的坐标? 显而易见是6个: (1,7)(2,7) ...

  3. 利用Python进行数据分析 第4章 NumPy基础-数组与向量化计算(3)

    4.2 通用函数:快速的元素级数组函数 通用函数(即ufunc)是一种对ndarray中的数据执行元素级运算的函数. 1)一元(unary)ufunc,如,sqrt和exp函数 2)二元(unary) ...

  4. python数据分析 Numpy基础 数组和矢量计算

    NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...

  5. NumPy 迭代数组

    NumPy 迭代数组 NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式. 迭代器最基本的任务的可以完成对数组元素的访问. 接下来我们使用 arange() ...

  6. Java利用数组随机抽取幸运观众

    编写程序,事先将所有观众姓名输入数组,然后获得数组元素的总数量,最后在数组元素中随机抽取元素的下标,根据抽取的下标获得幸运观众的姓名. 思路如下: 定义输入框的按键事件,使用KeyEvent类的get ...

  7. 找出numpy array数组的最值及其索引

    在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where ...

  8. ACM -- 算法小结(一)利用数组存放实现排序

    利用数组存放实现排序    hodj1425   321MS   2011/08 题意:输入n个数字,要求输出从大到小排序的前m个数 解题技巧:利用大数存储在数组后面,小数存储在前面,倒序输出完成从大 ...

  9. poj 2262 筛法求素数(巧妙利用数组下标!)

    Goldbach's Conjecture Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 41582   Accepted: ...

随机推荐

  1. ES6模块的import和export用法

    ES6之前已经出现了js模块加载的方案,最主要的是CommonJS和AMD规范.commonjs主要应用于服务器,实现同步加载,如nodejs.AMD规范应用于浏览器,如requirejs,为异步加载 ...

  2. LeetCode263——Ugly Number

    Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers ...

  3. golang gc 优化思路以及实例分析

    一个即将上线的go 写的高频服务,压测的时候发现 gc 特别高,高到10%-15% 左右了,本文记录下优化 gc 的过程和和思路.线上环境1.10. 首先,查看gc 是否有异常,我们可以使用 gctr ...

  4. angular学习笔记(三十)-指令(10)-require和controller

    本篇介绍指令的最后两个属性,require和controller 当一个指令需要和父元素指令进行通信的时候,它们就会用到这两个属性,什么意思还是要看栗子: html: <outer‐direct ...

  5. C++操作符的优先级 及其记忆方法

    优先级 操作符 描述 例子 结合性 1 ()[]->.::++-- 调节优先级的括号操作符数组下标访问操作符通过指向对象的指针访问成员的操作符通过对象本身访问成员的操作符作用域操作符后置自增操作 ...

  6. 每日英语:Nanjing's New Sifang Art Museum Illustrates China's Cultural Boom

    In a forest on the outskirts of this former Chinese capital, 58-year-old real-estate developer Lu Ju ...

  7. python 三元表达式 if for 构建List 进阶用法

    1.简单的for...[if]...语句 Python中,for...[if]...语句一种简洁的构建List的方法,从for给定的List中选择出满足if条件的元素组成新的List,其中if是可以省 ...

  8. [DIOCP3-IocpTask说明书]基于IOCP引擎的多线程任务的投递和回调处理单元

    [说明] IocpTask是基于Iocp引擎的多线程任务投递和处理单元,可以方便的把任务进行投递到IOCP线程进行统一调度和处理,是模仿QDAC-QWorker的处理方式,支持D7以上的版本. [使用 ...

  9. 【转】MySQL查看表占用空间大小(转)

    //先进去MySQL自带管理库:information_schema //自己的数据库:rokid_cas_music_test //自己的表:data_song_thirdparty mysql&g ...

  10. virsh的详细命令解析(一)

    virsh的详细命令解析 virsh 有命令模式和交互模式如果直接在vrish后面添加参数是命令模式,如果直接写virsh,就会进入交互模式 virsh list 列出所有的虚拟机,虚拟机的状态有(8 ...