Numpy 利用数组进行数据处理
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 利用数组进行数据处理的更多相关文章
- numpy利用数组进行数据处理
将条件逻辑表述为数组运算 numpy.where()是一个三目运算的表达式 In [34]: xarr = np.array([1.1,1.2,1.3,1.4,1.5]) In [35]: yarr ...
- numpy使用数组进行数据处理
numpy使用数组进行数据处理 meshgrid函数 理解: 二维坐标系中,X轴可以取三个值1,2,3, Y轴可以取三个值7,8, 请问可以获得多少个点的坐标? 显而易见是6个: (1,7)(2,7) ...
- 利用Python进行数据分析 第4章 NumPy基础-数组与向量化计算(3)
4.2 通用函数:快速的元素级数组函数 通用函数(即ufunc)是一种对ndarray中的数据执行元素级运算的函数. 1)一元(unary)ufunc,如,sqrt和exp函数 2)二元(unary) ...
- python数据分析 Numpy基础 数组和矢量计算
NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...
- NumPy 迭代数组
NumPy 迭代数组 NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式. 迭代器最基本的任务的可以完成对数组元素的访问. 接下来我们使用 arange() ...
- Java利用数组随机抽取幸运观众
编写程序,事先将所有观众姓名输入数组,然后获得数组元素的总数量,最后在数组元素中随机抽取元素的下标,根据抽取的下标获得幸运观众的姓名. 思路如下: 定义输入框的按键事件,使用KeyEvent类的get ...
- 找出numpy array数组的最值及其索引
在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where ...
- ACM -- 算法小结(一)利用数组存放实现排序
利用数组存放实现排序 hodj1425 321MS 2011/08 题意:输入n个数字,要求输出从大到小排序的前m个数 解题技巧:利用大数存储在数组后面,小数存储在前面,倒序输出完成从大 ...
- poj 2262 筛法求素数(巧妙利用数组下标!)
Goldbach's Conjecture Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 41582 Accepted: ...
随机推荐
- 什么是UML?分哪两类?
统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言.UML为面向对象开发系统的产品进行说明.可视化.和编制文档的一种标准语言 ...
- 进程process与线程thread
进程:process是一个外理过程,即然是外理过程,那么它就有生命周期,从进程的启动,运行,直到运行结束,进程终止.进程是程序的执行实例,即运行中的程序,同时也是程序的一个副本,程序是放置于磁盘的,而 ...
- android笔记--加载框
package com.fuda.ui; import android.app.Activity; import android.os.Bundle; import android.os.Handle ...
- Nan-boxing技术介绍
NaN-boxing看起来像英文翻译的“南拳”,其实它是表示一个无效的double数.NaN-boxing技术:通过一个64位的数字来表示多种数据类型的技术,它通过一个nan浮点数来保存数据,根据IE ...
- Gitlab日常备份和恢复
按照官方安装文档安装完成之后的/home/git目录结构如下,这里我大致翻译官方的内容,部分加上自己的话,英语功力捉急,请见谅 |-- home | |-- git | |-- .ssh | |-- ...
- 【转】Python 字典中的中文输出问题
import json dict = {'Title': '这是标题'} print json.dumps(dict, ensure_ascii=False, encoding='UTF-8') #结 ...
- spark编译报错信息简介
spark编译需要环境 git java1.+ maven R 报错信息1: [INFO] ------------------------------------------------------ ...
- 如何在一张ppt中插入多张图片并能依次播放
我们在做ppt的过程中,有时遇到在一张ppt中插入多张图片还想让其能依次播放的情况,针对上述情况我们可以根据下列步骤进行设置.(新手必看) 1.首先,用鼠标点击桌面Microsoft PowerPo ...
- idea 改变version control
idea 当一个moudule拥有2个VCS的时候 如何切换其应用的VSC 如拥有 SVN 和 GIT 2个版本 ,想换回SVN则删除 git目录 将 version control vcs 设 ...
- 基于jQuery图片自适应排列显示代码
基于jQuery图片自适应排列显示代码.这是一款基于jquery.flex-images插件实现的类似谷歌图片流效果.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div ...