学习笔记,这个笔记以例子为主。
开发工具:Spyder


文章目录

  • 通用函数
      • 数组的剪裁
      • 数组的压缩
    • 加法、乘法通用函数
    • 除法通用函数
    • 三角通用函数
      • 合成方波

通用函数

数组的剪裁

  • 语法
# 将调用数组中小于和大于下限和上限的元素替换为下限和上限,返回裁剪后的数组,调
# 用数组保持不变。
ndarray.clip(min=下限, max=上限)
  • 图示

  • 举个例子

代码:

import numpy as np
a = np.array([[1, 3, 5], [2, 4, 6],[3, 9, 6]])print(a)
print(a.clip(min = 3, max = 6))

结果:

[[1 3 5][2 4 6][3 9 6]]
[[3 3 5][3 4 6][3 6 6]]

数组的压缩

  • 语法
# 返回由调用数组中满足条件的元素组成的新数组。
ndarray.compress(条件)
  • 例子

代码:

import numpy as np
a = np.array([[1, 3, 5], [2, 4, 6],[3, 9, 6]])print(a)
print(a.compress(a % 3 == 0))

结果:


报错,我们输入的数组必须是一位数组。

代码2:

import numpy as np
a = np.arange(1, 20)print(a)
print(a.compress(a % 3 == 0))

结果2:

[ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
[ 3  6  9 12 15 18]

备注:and无法进行数组与数组之间的运算。但是我们可以用np.all进行数组之间的与运算。

代码3:

import numpy as np
a = np.arange(1, 20)print(a)
print(a.compress(np.all([a % 2 == 0, a % 3 == 0], axis = 0)))

结果3:

[ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
[ 6 12 18]

加法、乘法通用函数

  • 语法
# 两数组相加
np.add(a, b)# a数组元素累加和
np.add.reduce(a)# 累加和过程
np.add.accumulate(a)# 外和
np.add.outer([10, 20, 30], a)# 计算所有元素的乘积
np.prod(a)
#对于有多个维度的数组可以指定轴
#如axis=1指定计算每一行的乘积。# 返回调用数组中所有元素执行累乘的过程数组。
np.cumprod()
np.outer()
  • 例子1(相加、累加和、累加)

代码:

import numpy as np
a = np.arange(1, 7)
b = np.arange(5, 11)print('a:', a, '\n', 'b:', b)
print('a + b:', np.add(a, b))
print(np.add.reduce(a))
print(np.add.accumulate(a))

结果:

a: [1 2 3 4 5 6] b: [ 5  6  7  8  9 10]
a + b: [ 6  8 10 12 14 16]
21
[ 1  3  6 10 15 21]
  • 例子2(外和)

代码:

import numpy as np
a = np.arange(1, 7)
print(np.add.outer([10, 20, 30], a))

结果:

[[11 12 13 14 15 16][21 22 23 24 25 26][31 32 33 34 35 36]]
  • 例子3(外积)

代码:

import numpy as np
a = np.arange(1, 7)
print(np.outer([10, 20, 30], a))

结果:

[[ 10  20  30  40  50  60][ 20  40  60  80 100 120][ 30  60  90 120 150 180]]
  • 例子4(累乘、累乘和)

代码:

import numpy as np
a = np.arange(1, 7)
print(np.prod(a))
print(np.cumprod(a))

结果:

720
[  1   2   6  24 120 720]

除法通用函数

  • 语法
# a 真除 b (对应位置相除)
np.true_divide(a, b)# a 真除 b
np.divide(a, b) # a 地板除 b(真除的结果向下取整)
np.floor_divide(a, b)
np.floor(a / b)# a 天花板除 b(真除的结果向上取整)
np.ceil(a / b) # a 截断除 b    (真除的结果直接干掉小数部分)
np.trunc(a / b) #四舍五入
np.round(a / b)
  • 例子

代码:

import numpy as np
a = np.array([10, 20, 8, 9, 9])
b = np.array([3, -3, 4, 5, -5])
print(np.divide(a, b))
print(np.floor_divide(a, b))
print(np.ceil(a/b))
print(np.trunc(a/b))
print(np.round(a/b))

结果:

[ 3.33333333 -6.66666667  2.          1.8        -1.8       ]
[ 3 -7  2  1 -2]
[ 4. -6.  2.  2. -1.]
[ 3. -6.  2.  1. -1.]
[ 3. -7.  2.  2. -2.]

三角通用函数

  • 语法
numpy.sin()
  • 傅里叶定理

法国科学家傅里叶提出,任何一条周期曲线,无论多么跳跃或不规则,都能表示成一组光滑正弦曲线叠加之和。

合成方波

方波长啥样?如下图所示:


一个方波由如下参数的正弦波叠加而成:

曲线叠加的越多,越接近方波。

  • 例子(模拟合成方波)

代码:

import numpy as np
import matplotlib.pyplot as mpx = np.linspace(-2*np.pi, 2*np.pi, 1000)
y = np.zeros(1000)
n = 1000
for i in range(1, n+1):y += 4 / ((2 * i - 1) * np.pi) \* np.sin((2 * i - 1) * x)mp.plot(x, y)mp.show()

结果:

这里,我们将range(1, n + 1)改为range(1, 4),只绘制3条正弦曲线,并合成:

import numpy as np
import matplotlib.pyplot as mpx = np.linspace(-2*np.pi, 2*np.pi, 1000)
y = np.zeros(1000)
n = 1000
for i in range(1, 4):y_temp = 4 / ((2 * i - 1) * np.pi) \* np.sin((2 * i - 1) * x)mp.plot(x, y_temp)y += y_tempmp.plot(x, y, linestyle = '--',linewidth = 4,label = 'Synthetic Wave')
mp.legend(loc = 0)
mp.show()

图像:

numpy基础(part10)--通用函数相关推荐

  1. python之numpy基础_Python知识普及:Numpy基础操作

    原标题:Python知识普及:Numpy基础操作 Numpy基础数据结构 创建数组 Numpy通用函数 import numpy as np # reshape 改变数组维度形状 ar1 = np.a ...

  2. 【Python】Numpy基础:数组和矢量运算

    Numpy基础:数组和矢量运算 目录: 文章目录 一 Numpy及其重要性 二 ndarray:一种多维数组对象 1 创建ndarray 2 ndarray的数据类型 3 数组和标量之间的运算 4 基 ...

  3. numpy 随机数_数据分析numpy基础看着一篇就够了

    1,Numpy基础数据结构 2,Numpy通用函数 3,Numpy索引及切片 4,Numpy随机数 5,Numpy数据的输入输出 1,Numpy基础数据结构 NumPy数组是一个多维数组对象,称为nd ...

  4. 数据分析之numpy基础/matplotlib绘图/numpy常用函数/杂项功能

    文章目录 数据分析 numpy概述 numpy`历史` numpy的核心:多维数组 numpy基础 ndarray数组 内存中的ndarray对象 ndarray数组对象的特点 ndarray数组对象 ...

  5. python 数据分析5 NumPy 基础:数组和矢量计算

    系列文章:Python 数据分析 文章目录 五.NumPy 基础:数组和矢量计算 1.n维数组对象 ndarray 创建 dtype 数组运算 基本的索引和切片 一维数组 二维数组 布尔型索引 花式索 ...

  6. Python数据分析学习四 NumPy基础:数组和矢量计算

    Python数据分析学习系列四NumPy基础:数组和矢量计算 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下 ...

  7. Python数据分析入门--Numpy基础学习笔记

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 NumPy基础 1.NumPy nadarray:多维数组对象 1.1ndarray及其数据类型 1.2NumPy数组 ...

  8. python二维向量运算模拟_【转载 Python】Numpy基础:数组和矢量运算

    Numpy基础:数组和矢量运算 目录: 尊重原创,转载出处:https://blog.csdn.net/sunyaowu315/article/details/82733249?utm_medium= ...

  9. Python精讲Numpy基础,大牛笔记详细解释

    https://www.toutiao.com/a6664936105076326920/ 总认为Numpy是渣渣,直到深入接触以后才知道功能这么强大.堪比Matlab啊.果然是人生苦短,我用Pyth ...

最新文章

  1. Kali渗透测试——UPNP网关发现工具Miranda
  2. python计算平行线
  3. ecilpse连接oracle ojdbc驱动
  4. web前端知识点太多_web前端入门必学的16个知识点,都来看一下吧
  5. javascript创建对象的几种方式 .
  6. 我们来聊点成年人的话题!
  7. jmeter之-用Firefox录制https协议证书问题
  8. mysql区分大小写搜索
  9. 实现工具自由!开源的桌面工具箱
  10. 如何在Ubuntu下面识别Galaxy Nexus设备
  11. 32 配置引脚中断_PCIe的中断机制
  12. this.$router.push相关的vue-router的导航方法
  13. 捷联惯导系统学习4.2(捷联惯导误差方程)
  14. Cisco(54)——STP理论(2)
  15. 通过微信code获取微信openid
  16. 阿里云短信服务接口触发天级流控Permits:10
  17. P3939数颜色 (主席树)
  18. 流量分类方法设计(一)——参考论文整理
  19. excel文件导入hive乱码_把数据库数据导出到excel
  20. 普罗米修斯?古希腊泰坦之神?异形?不,新一代企业级监控组件—Prometheus

热门文章

  1. 字段定义_逐浪CMS对用户注册字段正则的自由定义(注册字段必填)
  2. SpringMVC注解开发(基础)---SpringMVC学习笔记(七)
  3. 网络相关的一些基本的命令的使用(ping、ifconfig、route、netstat)---Linux学习笔记
  4. 网络分流器|运营商光纤延距解决方案
  5. 在Webstorm中配置Compass Watcher
  6. 自定义存储过程和函数
  7. 【转】测试架构师团队的管理
  8. Bonjour是什么?
  9. js 获取 本周、上周、本月、上月、本季度、上季度的开始结束日期
  10. Steps to install Domino Server 8.5.1 on AIX 6