当前位置: 首页 > news >正文

Numpy——通用函数、向量化、基础的统计计算

基本的通用函数(ufunc)

通用函数 (Universal Functions, 简称 ufunc) 是 NumPy 的核心功能之一,它是对 ndarray 进行逐元素操作的函数,具有高性能的向量化运算能力

主要特点:
  • 向量化操作:对数组中的每个元素执行相同的操作
  • 广播机制:支持不同形状数组之间的运算
  • 多种返回:可以返回多个数组
  • 高性能:底层用 C 实现,运算效率高
通用函数类型
  • 一元函数:简单的元素级转换,
    abs(绝对值),fabs(浮点数的绝对值), sqrt(平方根), square(), exp(指数), log(对数), log10, log2, sign(计算各元素的符号,1,0,-1); ceil(向上取整),floor(向下取整),rint(四舍五入到最接近的整数,保留dtype),modf(将数组的小数部分和整数部分以两个独立数组的形式返回)。三角函数相关:cos,cosh,sin,sinh,tan,tanh,arccos,arccosh,arcsin,arcsinh,arctan,arctanh
  • 二元函数 :接受两个数组,返回一个数组作为结果
    add(加法),subtract(减法), multiply(乘法),divide(除法), floor_divide(),power(幂运算), maximum(最大值), minimum(最小值), mod(模运算), copysign(第二个数组中的元素值的符号复制给第一个数组中的元素)。
    比较相关:greater, greater_equal, less, less_equal, equal, not equal, 返回布尔数组
    位运算相关:logical_and, logical_or, logical_xor
out参数:out 是 NumPy 通用函数 (ufunc) 的一个重要参数,它允许你指定计算结果存储的位置,而不是创建一个新的数组

减少内存分配:避免创建临时数组,比如在循环中
提高性能:特别是对于大型数组的重复操作,(in-place写入)
原地操作:可以直接修改现有数组

import time
import numpy as np
large_arr = np.random.rand(10000000)# 不使用 out
start = time.time()
for _ in range(10):result = np.sin(large_arr)
print("Without out:", time.time() - start)  # 输出:Without out: 1.055288314819336# 使用 out
output = np.empty_like(large_arr)
start = time.time()
for _ in range(10):np.sin(large_arr, out=output)
http://www.lqws.cn/news/138385.html

相关文章:

  • Elasticsearch中的地理空间(Geo)数据类型介绍
  • 《小明的一站式套餐服务平台》
  • 【网络安全】fastjson原生链分析
  • 制造业数字化转型解决方案及应用
  • 在Mathematica中实现Newton-Raphson迭代的收敛时间算法
  • gitlab rss订阅失败
  • video-audio-extractor:视频转换为音频
  • 什么是分布式锁?几种分布式锁分别是怎么实现的?
  • 优化技巧--滑动窗口
  • Golang——7、包与接口详解
  • c++第6天--运算符重载
  • return this;返回的是谁
  • 散货拼柜业务:多货主财务结算如何高效管理?
  • machine_env_loader must have been assigned before creating ssh child instance
  • 开源模型应用落地-OpenAI Agents SDK-集成Qwen3-8B-function_tool(二)
  • 【HarmonyOS 5】游戏开发教程
  • C++初阶 | 模板
  • 《复制粘贴的奇迹:小明的原型工厂》
  • 人工智能:网络安全的“智能守护者”
  • 驱动:字符设备驱动注册、读写实操
  • Visual Studio C++ 调试日志与异常定位指南
  • Spring BeanPostProcessor
  • 大数据学习(130)-zookeeper
  • 深度解析ArrayList
  • LLM:Scaling Law
  • java判断一个字符串(如 str1)是否在给定的一组字符串
  • el-table 树形数据,子行数据可以异步加载
  • Vue指令修饰符、v-bind对样式控制的增强、computed计算属性、watch监视器
  • Deepfashion2 数据集使用笔记
  • MyBatis-Plus LambdaQuery 高级用法:JSON 路径查询与条件拼接的全场景解析