numpy基础(part10)--通用函数
学习笔记,这个笔记以例子为主。
开发工具: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)--通用函数相关推荐
- python之numpy基础_Python知识普及:Numpy基础操作
原标题:Python知识普及:Numpy基础操作 Numpy基础数据结构 创建数组 Numpy通用函数 import numpy as np # reshape 改变数组维度形状 ar1 = np.a ...
- 【Python】Numpy基础:数组和矢量运算
Numpy基础:数组和矢量运算 目录: 文章目录 一 Numpy及其重要性 二 ndarray:一种多维数组对象 1 创建ndarray 2 ndarray的数据类型 3 数组和标量之间的运算 4 基 ...
- numpy 随机数_数据分析numpy基础看着一篇就够了
1,Numpy基础数据结构 2,Numpy通用函数 3,Numpy索引及切片 4,Numpy随机数 5,Numpy数据的输入输出 1,Numpy基础数据结构 NumPy数组是一个多维数组对象,称为nd ...
- 数据分析之numpy基础/matplotlib绘图/numpy常用函数/杂项功能
文章目录 数据分析 numpy概述 numpy`历史` numpy的核心:多维数组 numpy基础 ndarray数组 内存中的ndarray对象 ndarray数组对象的特点 ndarray数组对象 ...
- python 数据分析5 NumPy 基础:数组和矢量计算
系列文章:Python 数据分析 文章目录 五.NumPy 基础:数组和矢量计算 1.n维数组对象 ndarray 创建 dtype 数组运算 基本的索引和切片 一维数组 二维数组 布尔型索引 花式索 ...
- Python数据分析学习四 NumPy基础:数组和矢量计算
Python数据分析学习系列四NumPy基础:数组和矢量计算 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下 ...
- Python数据分析入门--Numpy基础学习笔记
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 NumPy基础 1.NumPy nadarray:多维数组对象 1.1ndarray及其数据类型 1.2NumPy数组 ...
- python二维向量运算模拟_【转载 Python】Numpy基础:数组和矢量运算
Numpy基础:数组和矢量运算 目录: 尊重原创,转载出处:https://blog.csdn.net/sunyaowu315/article/details/82733249?utm_medium= ...
- Python精讲Numpy基础,大牛笔记详细解释
https://www.toutiao.com/a6664936105076326920/ 总认为Numpy是渣渣,直到深入接触以后才知道功能这么强大.堪比Matlab啊.果然是人生苦短,我用Pyth ...
最新文章
- Kali渗透测试——UPNP网关发现工具Miranda
- python计算平行线
- ecilpse连接oracle ojdbc驱动
- web前端知识点太多_web前端入门必学的16个知识点,都来看一下吧
- javascript创建对象的几种方式 .
- 我们来聊点成年人的话题!
- jmeter之-用Firefox录制https协议证书问题
- mysql区分大小写搜索
- 实现工具自由!开源的桌面工具箱
- 如何在Ubuntu下面识别Galaxy Nexus设备
- 32 配置引脚中断_PCIe的中断机制
- this.$router.push相关的vue-router的导航方法
- 捷联惯导系统学习4.2(捷联惯导误差方程)
- Cisco(54)——STP理论(2)
- 通过微信code获取微信openid
- 阿里云短信服务接口触发天级流控Permits:10
- P3939数颜色 (主席树)
- 流量分类方法设计(一)——参考论文整理
- excel文件导入hive乱码_把数据库数据导出到excel
- 普罗米修斯?古希腊泰坦之神?异形?不,新一代企业级监控组件—Prometheus
热门文章
- 字段定义_逐浪CMS对用户注册字段正则的自由定义(注册字段必填)
- SpringMVC注解开发(基础)---SpringMVC学习笔记(七)
- 网络相关的一些基本的命令的使用(ping、ifconfig、route、netstat)---Linux学习笔记
- 网络分流器|运营商光纤延距解决方案
- 在Webstorm中配置Compass Watcher
- 自定义存储过程和函数
- 【转】测试架构师团队的管理
- Bonjour是什么?
- js 获取 本周、上周、本月、上月、本季度、上季度的开始结束日期
- Steps to install Domino Server 8.5.1 on AIX 6