import numpy as npdef triangle_wave(x, c, c0, hc):x = x - int(x)  # 三角波的周期为1,因此只取 x 坐标的小数部分进行计算if x >= c:r = 0.0elif x < c0:r = x / c0 * hcelse:r = (c - x) / (c - c0) * hcreturn rx = np.linspace(0, 2, 1000)
y1 = np.array([triangle_wave(t, 0.6, 0.4, 1.0) for t in x])
"""
通过 frompyfunc()可以将计算单个值的函数转换为一个能对数组中每个元素进行计算的
ufunc 函数。frompyfunc(func,nin,nout)
func 是计算单个元素的函数,nin 是 func 输入参数的个数,nout 是 func 返回值的个
数。
"""
triangle_ufunc1 = np.frompyfunc(triangle_wave, 4, 1)
y2 = triangle_ufunc1(x, 0.6, 0.4, 1.0)  # 结果和y1是一样的"""
广播(broadcasting)处理,对于形状不同的数组进行计算时,会自动补齐
"""
a = np.arange(0, 60, 10).reshape(-1, 1)
# [[ 0], [10], [20], [30], [40], [50]] shape(6,1)
b = np.arange(0, 5)
# [0, 1, 2, 3, 4]shape(5,0)
print('a+b:  \n', a + b)a = a.repeat(5, axis=1)  # 扩充5列
print('a:  \n', a)
b.shape = 1, 5
b = b.repeat(6, axis=0)  # 扩充6行
print('b:  \n', b)
"""
a+b:  [[ 0  1  2  3  4][10 11 12 13 14][20 21 22 23 24][30 31 32 33 34][40 41 42 43 44][50 51 52 53 54]]
a:  [[ 0  0  0  0  0][10 10 10 10 10][20 20 20 20 20][30 30 30 30 30][40 40 40 40 40][50 50 50 50 50]]
b:  [[0 1 2 3 4][0 1 2 3 4][0 1 2 3 4][0 1 2 3 4][0 1 2 3 4][0 1 2 3 4]]
"""
# NumPy 提供了快速产生能进行广播运算的数组的 ogrid对象。
x, y = np.ogrid[:5, :5]
print('x:  ', x)
print('y:  ', y)
"""
x:   [[0][1][2][3][4]]
y:   [[0 1 2 3 4]]
"""

转载于:https://www.cnblogs.com/smallJunJun/p/9373754.html

numpy-自定义ufunc函数和广播相关推荐

  1. Python数据分析 1-5 NumPy中ufunc函数(一)主要介绍NumPy中常用的通用函数:基本数学函数、三角函数和反三角函数和统计类函数

    1 引入NumPy #引入numpy import numpy as np np.__version__ '1.20.1' 2 基本数学函数 NumPy中基本数学函数有加法.减法.乘法.除法.乘方.开 ...

  2. DL之DNN:利用numpy自定义三层结构+softmax函数建立3层完整神经网络全部代码实现(探究BP神经网络的底层思想)

    DL之DNN:利用numpy自定义三层结构+softmax函数建立3层完整神经网络全部代码实现(探究BP神经网络的底层思想) 目录 输出结果 代码实现 输出结果 代码实现 #DL之NN:利用numpy ...

  3. numpy的ufunc

    介绍点高级的东西,numpy中的ufunc. ufunc(universal function)能够作用于narray对象上的元素级函数,这些函数在对narray对象进行运算的速度比使用循环或者列表推 ...

  4. numpy中multiply函数怎么用

    multiply(a,b)就是个乘法,如果a,b是两个数组,那么对应元素相乘 numpy.multiplynumpy.multiply(x1, x2[, out]) = <ufunc 'mult ...

  5. 图解NumPy:常用函数的内在机制

    选自Medium 作者:Lev Maximov 机器之心编译 编辑:Panda 支持大量多维数组和矩阵运算的 NumPy 软件库是许多机器学习开发者和研究者的必备工具,本文将通过直观易懂的图示解析常用 ...

  6. matlab ufunc,ufunc函数

    21 NumPy库 理论学习 案例学习 学习活动 学习评测 参考资料 表10-1数组的运算符与 ufunc函数对应列表 数组的运算符 对应的ufunc函数 y = x1 + x2 add(x1, .. ...

  7. DL:LinearNN(numpy自定义的) solve XOR problem

    DL:LinearNN(numpy自定义的) solve  XOR problem 目录 输出结果 核心代码 LinearNN使用案例 输出结果 核心代码 #BP solve XOR Problem ...

  8. ML之Kmeans:利用自定义Kmeans函数实现对多个坐标点(自定义四个点)进行自动(最多迭代10次)分类

    ML之Kmeans:利用自定义Kmeans函数实现对多个坐标点(自定义四个点)进行自动(最多迭代10次)分类 目录 输出结果 核心代码 输出结果 核心代码 #!/usr/bin/python # -* ...

  9. astype函数_Python库收录——数值计算numpy库常用函数(含注释)

    这里对Numpy库常用的函数进行总结.详细的函数内容可以查阅.Numpy是科学计算库,是一个强大的N维数组对象ndarray,是广播功能函数.其整合C/C++.fortran代码的工具 ,更是Scip ...

最新文章

  1. 封装echarts china map geo实现dispatch触发geoSelect事件高亮显示某个省份和城市,并定义复杂样式
  2. html在线测试接口,apiManager: 小幺鸡在线接口管理系统,支持在线测试,支持json,txt,xml,html,js,流,和 WebSocket...
  3. python那么慢为什么还有人用-为什么Python比C++慢很多?
  4. python的学习笔记(0)之循环的使用1
  5. 【maven】javaee项目添加servlet、jsp依赖
  6. Spark(一)-- Standalone HA的部署
  7. 计算广告(computational advertising)
  8. linkedin客户开发_10个LinkedIn WordPress插件赢得新客户
  9. 连接池实现mysql增删改查_java使用原生MySQL实现数据的增删改查以及数据库连接池技术...
  10. 牛客小白月赛1 F.三视图
  11. matlab三维地形显示,三维地形可视化的MATLAB实现_张林泉
  12. Android开发笔记(一百七十三)给安装包APK文件瘦身
  13. android switch 字体颜色,Switch的简单设置颜色
  14. AI绘画能取代设计师吗?
  15. (LeetCode C++)跳跃游戏
  16. 编程之路,从懵懂开始
  17. Vue和elementUI常用组件问题
  18. 【51nod1299】监狱逃离(树形DP)
  19. VC++6.0安装(解决win10,win11无法打开)
  20. 安装PyCrypto失败

热门文章

  1. Android自定义控件前导基础知识学习(一)——Canvas
  2. Spring Boot实现一个天气预报系统(一)
  3. cie计算机科学,爱德思IGCSE 计算机科学 edexcel computer science
  4. 时问轴php,php-发布到时间轴-过去的日期
  5. python玩转android_Android上执行python脚本-QPython
  6. 清除Console口和Telnet密码教程
  7. 【基础】防火墙接口类型全介绍
  8. file extension php,.php File Extension
  9. 教你 4 步搭建弹性可扩展的 WebAPI
  10. php 执行命令屏幕输出捕捉,在php执行linux命令时显示所有输出