Python的默认实现(CPython)处理某些操作非常慢,因为动态性和解释性,



CPython 在每次循环必须左数据类型的检查和函数的调度。。在编译是进行这样的操作。就会加快执行速度。

通用函数介绍

Numpy 为很多类型的操作提供了方便的、静态类型的、可编译程序的接口。叫做向量操作。

对数组的操作会用于数组的每一个元素。



也可以对俩个数组进行运算

探索通用函数

俩种存在形式

  • 一元通用函数 unary ufunc 对单个输入操作
  • 二元通用函数 binary ufunc 对俩个输入操作

    1)数组的运算

    Numpy 通用函数的使用方式非常自然,就是Python原生的算术运算符。加 减 乘 除

    | Operator | Equivalent ufunc | Description |

    | -------- | ---------------- | ----------------------------------- |

    | + | np.add | Addition (e.g., 1 + 1 = 2) |

    | - | np.subtract | Subtraction (e.g., 3 - 2 = 1) |

    | - | np.negative | Unary negation (e.g., -2) |

    | * | np.multiply | Multiplication (e.g., 2 * 3 = 6) |

    | / | np.divide | Division (e.g., 3 / 2 = 1.5) |

    | // | np.floor_divide | Floor division (e.g., 3 // 2 = 1) |

    | ** | np.power | Exponentiation (e.g., 2 ** 3 = 8) |

    | % | np.mod | Modulus/remainder (e.g., 9 % 4 = 1) |

    2)绝对值



    np.absolute



    3)三角函数



    逆三角函数

4)指数和对数

指数运算的逆运算, 即对数运算

np.log 以自然常数 e 为底数的对数

高级的通用函数特性

  • 指定输出

    out参数

  • 聚合

    reduce 方法会对给定的元素和操作 重复执行,直至得到单个的结果



如果需要保存计算的中间结果使用 accumulate

  • 外积

    任何通用函数都可以使用outer方法获得俩个不同输入 数组 所有元素对 的函数运算结果。

    可以用一行代码实现一个乘法表

聚合:最小值、最大值和其他值

  • 数组值求和



    sum 和 np.sum不一样。np.sum更快。np.sum 知道数组的维度

  • 最小值,最大值

    np.min np.max
  • 多维度聚合

    默认是整个数组的聚合结果,可以按照某个维度聚合。 参数 axis

  • 其他聚合函数

    | Function Name | NaN-safe Version | Description |

    | ------------- | ---------------- | ----------------------------------------- |

    | np.sum | np.nansum | Compute sum of elements |

    | np.prod | np.nanprod | Compute product of elements |

    | np.mean | np.nanmean | Compute mean of elements |

    | np.std | np.nanstd | Compute standard deviation |

    | np.var | np.nanvar | Compute variance |

    | np.min | np.nanmin | Find minimum value |

    | np.max | np.nanmax | Find maximum value |

    | np.argmin | np.nanargmin | Find index of minimum value |

    | np.argmax | np.nanargmax | Find index of maximum value |

    | np.median | np.nanmedian | Compute median of elements |

    | np.percentile | np.nanpercentile | Compute rank-based statistics of elements |

    | np.any | N/A | Evaluate whether any elements are true |

    | np.all | N/A | Evaluate whether all elements are true |

Python数据科学手册-Numpy数组的计算,通用函数的更多相关文章

  1. Python数据科学手册-Numpy数组的计算:广播

    广播可以简单理解为用于不同大小数组的二元通用函数(加减乘等)的一组规则 二元运算符是对相应元素逐个计算 广播允许这些二元运算符可以用于不同大小的数组 更高维度的数组 更复杂的情况,对俩个数组的同时广播 ...

  2. Python数据科学手册-Numpy数组的计算:比较、掩码和布尔逻辑,花哨的索引

    Numpy的通用函数可以用来替代循环, 快速实现数组的逐元素的 运算 同样,使用其他通用函数实现数组的逐元素的 比较 < > 这些运算结果 是一个布尔数据类型的数组. 有6种标准的比较操作 ...

  3. Python数据科学手册-Numpy数组的排序

    1)  Numpy中的快速排序: np.sort  和 np.argsort np.sort 是快速排序,算法复杂度 O[ N log N] ,也可以选择归并排序和堆排序 如果不想修改原始输入数组,返 ...

  4. Python数据科学手册-Numpy入门

    通过Python有效导入.存储和操作内存数据的技巧 数据来源:文档.图像.声音.数值等等,将所有的数据简单的看做数字数组 非常有助于 理解和处理数据 不管数据是何种形式,第一步都是 将这些数据转换成 ...

  5. Python数据科学手册-Numpy的结构化数组

    结构化数组 和 记录数组 为复合的.异构的数据提供了非常有效的存储 (一般使用pandas 的 DataFrame来实现) 传入的dtpye 使用 Numpy数据类型 Character Descri ...

  6. Python数据科学手册

    Python数据科学手册(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1KurSdjNWiwMac3o3iLrzBg 提取码:qogy 复制这段内容后打开百度网盘手 ...

  7. 100天搞定机器学习|day45-53 推荐一本豆瓣评分9.3的书:《Python数据科学手册》

    <Python数据科学手册>共五章,每章介绍一到两个Python数据科学中的重点工具包.首先从IPython和Jupyter开始,它们提供了数据科学家需要的计算环境:第2章讲解能提供nda ...

  8. Python数据科学手册-前言

    读Python数据科学手册 笔记 系列 数据科学 data science https://img2022.cnblogs.com/blog/2827305/202205/2827305-202205 ...

  9. Matplotlib 使用 - 《Python 数据科学手册》学习笔记

    一.引入 import matplotlib as mpl import matplotlib.pyplot as plt 二.配置 1.画图接口 Matplotlib 有两种画图接口: (1)一个是 ...

随机推荐

  1. LeetCode. 812. 最大三角形面积

    812. 最大三角形面积 鞋带公式 鞋带公式,用于计算任意多边形的面积,可用于计算三角形的面积 已知 ΔABC 三个顶点的坐标 A:(x1,y1). B:(x2,y2). C:(x3,y3) 对应的矩 ...

  2. ShardingSphere 云上实践:开箱即用的 ShardingSphere-Proxy 集群

    本次 Apache ShardingSphere 5.1.2 版本更新为大家带来了三大全新功能,其中之一即为使用 ShardingSphere-Proxy chart 在云环境中快速部署一套 Shar ...

  3. word段落前的小点·

    原因是因为修改论文时,要求在论文的标题前加上 '·' 类似: 在网上搜索了半天,都是加符号,特此记录 解决: 1.文件---选项---显示--勾选段落标记 2.修改样式 至此,设置完毕,章节前的小点已 ...

  4. kubernetes下kubelet无法启动

    错误如下: 09:58:45 kubernetes-node01 kubelet[6248]: F0124 09:58:45.902571 6248 server.go:265] failed to ...

  5. 网易云UI模仿-->侧边栏

    侧边栏 效果图 界面分解 可以看到从上到下的流式布局.需要一个Column来容纳,并且在往上滑动的过程中顶部的个人信息是不会动的.所以接下来需要将剩余部分占满使用Flexibel组件. 实现 个人信息 ...

  6. Bika LIMS 开源LIMS集—— SENAITE的使用(检测流程)

    客户管理 登记客户信息,包括地址.合同报告邮寄地址.账单邮寄地址.付款银行账号等. 产品批次管理 例如某乳品公司生产处一批产品,该批产品送往实验室检测,实验室登记该批产品批号,如对该批产品做多次检测, ...

  7. Python花式读取大文件(10g/50g/1t)遇到的性能问题(面试向)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_97 最近无论是面试还是笔试,有一个高频问题始终阴魂不散,那就是给一个大文件,至少超过10g,在内存有限的情况下(低于2g),该以什 ...

  8. Apache DolphinScheduler新一代分布式工作流任务调度平台实战-中

    @ 目录 架构设计 总体架构 启动流程图 架构设计思想简述 负载均衡 缓存 实战使用 参数 参数优先级 内置参数 基础内置参数 衍生内置参数 本地参数和全局参数 工作流传参 数据源管理 支持数据源 创 ...

  9. 分库分表ShardingSphere-JDBC笔记整理

    一.分库分表解决的现状问题 解决数据库本身瓶颈 连接数: 连接数过多时,就会出现'too many connections'的错误,访问量太大或者数据库设置的最大连接数太小的原因 Mysql默认的最大 ...

  10. Dart 异步编程(三):详细认识

    基本概念 普通任务按照顺序执行:异步任务将在未来的某个时间执行. 实际演示 void main() { // waitFuture 函数是一个异步函数,阻塞会发生在函数内部 waitFuture(); ...