Python中的Numpy 面向数组编程常见操作
作者:王小王_123 发布时间:2021-08-21 20:31:32
数组编程
使用Numpy数组可以使你利用简单的数组表达式完成多项数据操作任务,而不需要编写大量的循环,这个极大的帮助了我们高效的解决问题。我们都知道向量化的数组操作比纯Python的等价实现在速度这一方面快很多,至于多少(一到两个数量级)甚至更多,生活需要慢节奏,但是计算就不可以了,掌握高效的计算模型,可以让数据分析如虎添翼!
简单例子
我们生成从-3.14--3.14,按照0.01的间隔生成,最后计算表达式X^2+Y^2的值
逻辑条件作为数组操作
numpy.where函数是三元表达式 x if condition else y 的向量化版本,假设我们有一个布尔值数组和两个数值数组
首先我们要明确的是我们自己去写这个逻辑来进行判断的话就比较的失败,因为遇到比较大的数组,速度会比较的慢,因为所有的代码工作都是解释器Python代码完成的,其次如果是多维的那就无法凑效了,但是我们使用np.where就可以简单的完成。
在np.where的第二个和第三个参数并需要数组,它们可以是标量,where在数据分析中的一个典型用法就是根据一个数组来生成一个新的数组。假设你有一个随机生成的矩阵数据,并且你想要其中的正值都有替换为2,所有的负数都替换为-2,使用这个函数轻松解决。
数学和统计方法
许多关于计算整个数组统计值或关于轴向数据的数据函数,可以作为数组类型的方法被调用。你可以使用聚合函数(通常也叫缩减函数),比如sum,mean,STD(标准差)既可以直接调用也可以使用顶层的numpy函数
对于统计方法我们的案例其实差不多,至于怎样去了解那就需要自己去琢磨了,下面有一个基础数组的统计方法
基础数组的统计方法:
sum | 计算总数
|
mean | 数学平均,0长度的数组平均值为NaN |
std,var | 标准差与方差 |
min,max | 最小值和最大值 |
argmin,argmax | 最小值和最大值的位置 |
cumsum | 从0开始元素累计和(等差数列求和) |
cumprod | 从1开始元素累计积(阶乘) |
一行代码计算1+2+....10数之和
布尔数组的方法
sum通常可以计算布尔值数组中true的个数,对于布尔数组,有两个非常常用的方法any和all。any用于检查数组中是否至少有一个true,如果有一个以上那么它就会返回true,any检查是否每一个值都是true,如果有一个不是true那就返回false。
排序
和Python类建列表相似,numpy数组可以使用sort方法按照位置排序
唯一值和其他的逻辑集合
介绍:
numpy包含一些针对一维ndarray的基础集合操作。常用的一个方法是np.unique返回的是包含数组唯一的排好序的集合,首先集合肯定是唯一的,那么我们在进行排序,解决它的无序性
应用场景假设有一个数组里面有很多值,而且有大量的重复的值我们需要对其进行排序,就可以使用这个方法了,下面是一些数组集合的操作
数组集合操作:
unique(x) 计算X的唯一值,并排序 intersect1d(x,y) 计算X和Y的交集,并排序 union1d(x,y) 计算X和Y的并集,并排序 in1d(x,y) 计算X中的元素是否包含在Y中,返回一个布尔值数组 setdiff1d(x,y) 差集,在X中但不在Y中的元素 setxor1d(x,y) 异或集,在X或Y中,但不属于X,Y交集的元素
来源:https://blog.51cto.com/u_15172991/5428150
猜你喜欢
- 1.利用装饰器在视图中拦截未登录的url@login_required(login_url='/user/login/')d
- 在Python中通过GET来获取页面的COOKIE是非常简单的事情,下面的代码实例演示了如何利用Python 获取COOKIE内容#! /u
- 现有表格中的一行的代码如下所示: 效果可以看下具体51搜索展示http://www.51bt.cc,结合Xunsearch全文检索技术,可以
- memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但被许多网站使用。这是一套开放
- 导读一篇用PyTorch Lighting提供模型服务的完全指南。纵观机器学习领域,一个主要趋势是专注于将软件工程原理应用于机器学习的项目。
- 一、正则表达式概述 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。请回想一下在硬盘上是
- 前言在golang当中,defer代码块会在函数调用链表中增加一个函数调用。这个函数调用不是普通的函数调用,而是会在函数正常返回,也就是re
- 想必很多初次接触python都会见到这样一个语句,if __name__ == "__main__":那么这个语句到底是
- 提示: 利用单表简单查询和多表高级查询技能,并且根据查询要求灵活使用内连接查询、外连接查询或子查询等。同时还利用内连接查询的两种格式、三种外
- 跟小组里一自称小方方的卖萌90小青年聊天,IT男的坏习惯,聊着聊着就扯到技术上去了,小方方突然问 1、声明一个数值类型的变量我看到三种,区别
- 常用树形结构设计总结开发中,经常会遇到树形结构的设计,所谓的树形结构,其实就是数据与关系的设计,本文用来总结常用的树形结构设计1. 递归表i
- 本文实例讲述了JavaScript阻止浏览器返回按钮的方法。分享给大家供大家参考。具体分析如下:下面的JS代码可以阻止用户点击返回按钮,非常
- django中有自带的分页模块Paginator,想Paginator提供对象的列表,就可以提供每一页上对象的方法。这里的话不讲解Pagin
- Hihi, 大家好~ 最近有不少人都提及了网页上该如何选择字体的问题。问题虽然小,但是却是前端开发中的基本,因为目前的网页,还是以文字信息
- 关于iframe的使用iframe在同域时能自由操作iframe和父框架的内容(DOM),在跨域时可以实现页面跳转。<iframe i
- 既然你选择了编程作为职业,就注定了要终生以计算机为伴。但这并不意味着你应该置自己的健康不顾。谁都知道,电脑面前待久了,一是伤害你的眼睛,而是
- 一. 介绍fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具,不需要做任何额外的
- 目录matplotlib基础线形图散点图直方图子图图例配置三维图pandas绘图不论是数据挖掘还是数学建模,都免不了数据可视化的问题。对于
- 本文较为详细的罗列了Python常见的异常处理,供大家参考,具体如下:1. 抛出异常和自定义异常Python用异常对象(exception
- 一、前言经过前面的两篇文章,整体工作已经完成了2/3了,剩下的1/3,将会在本片文章提及前面两步文章链接python实战之德州扑克第一步-发